Variable auf nächste Seite übergeben
Gerch2003
- php
Hi,
ich habe eine Suchfunktion die auch super funktioniert.
Allerdings stelle ich auf einer Seite nur 10 Ergebnisse an.
Meine Seitenblätterfunktion funktioniert an sich auch super, nur bei der Suche nicht. Sobald ich auf den Link für Seite 2 klicke zeigt er mir nicht die 2 Seite zu dem gesuchten Begriff an, sondern alle Einträge der Datenbank.
Die Suche ist ganz einfach mit <form> usw. aufgebaut und sendet den Suchbegriff mit post an die Ergebnisseite.
In der Ergebnisseite wird dann die Datenbank nach dem Suchwort durchsucht und entsprechend die Ergebnisse ausgegeben.
So, nun zu dem Problem. Kann es sein, dass wenn ich auf Seite 2 klicke er die Variable schon wieder vergessen hat und deswegen nicht mit weitergibt?
Frage ist nur wie ich sie wieder weitergeben kann. Muss ich da wieder ein <form> script basteln? Oder könnte man das ganz unkonventionell mit einem Formscript lösen?
Gruß
Hallo,
du kannst die var im link per get übergeben ?nextpage=2&suchwort=abc oder das suchwort per session_start und $_SESSION["meinsuchwort"] speichen. musst halt schauen, dass das ggf. auch aktualisiert wird, wenn jemand was neues sucht. mit unkonventionell hat das alles nix zu tun. unkonventionell sind eher workarrounds die ein problem durch umgehung beheben, weil es nicht korrekt behandelt werden kann.
Gruß
jobo
Das klingt ja schonmal gut
mit unkonventionell hat das alles nix zu tun. unkonventionell sind eher workarrounds die ein problem durch umgehung beheben, weil es nicht korrekt behandelt werden kann.
Ist das normal dass die Variable dann nicht mehr verfügbar ist oder habe ich einen Fehler in meinem Script. Wäre gut zu wissen, damit ich konventionell weiterarbeiten kann :-)
Gruß
Hi!
Ist das normal dass die Variable dann nicht mehr verfügbar ist oder habe ich einen Fehler in meinem Script. Wäre gut zu wissen, damit ich konventionell weiterarbeiten kann :-)
Für jeden Request wird eine eigene Instanz deines PHP-Scripts erstellt und ausgeführt. In dieser Instanz stehen alle Variablen zur Verfügung, die du selbst erstellt hast und die PHP dir zur Verfügung stellt ($_GET, $_POST, etc.). Am Ende des Scripts hören sämtliche Variablen auf zu existieren. Wenn du also irgendwelche Werte (Werte! nicht die Variablen selbst) in neue Instanzen des Script retten willst, so musst du diese Werte entweder so zum Client geben, dass dieser sie bei einem neuen Request wieder mitschickt oder sie selbst irgendwo ablegen (Session beispielsweise).
Lo!
Wunderbar, genau das wollte ich wissen :-)
Dankesehr
Hallo,
Das klingt ja schonmal gut
mit unkonventionell hat das alles nix zu tun. unkonventionell sind eher workarrounds die ein problem durch umgehung beheben, weil es nicht korrekt behandelt werden kann.
Ist das normal dass die Variable dann nicht mehr verfügbar ist oder habe ich einen Fehler in meinem Script. Wäre gut zu wissen, damit ich konventionell weiterarbeiten kann :-)
Naja, wenn du session_start() bemühst, fängt der Server an "mitzudenken" bzw. sich zu erinnern. Ansonsten hilft es, die Kommunikation zwischen Server und Client zu verstehen. Im Grunde sendet der Client jedes Mal einen neuen Request, und der Server kann aber muss nicht erkennen, was der grad schon mal wollte. Wenn der Client sein Suchwort gleich mitliefert (diesmal per GET im Querystring der URL) dann ist das eine Lösung, die voll ausreicht. Dazu eben noch, welche Seite denn diesmal...;
Gruß
jobo
Hi,
ich habe eine Suchfunktion die auch super funktioniert.
Allerdings stelle ich auf einer Seite nur 10 Ergebnisse an.
Meine Seitenblätterfunktion funktioniert an sich auch super, nur bei der Suche nicht. Sobald ich auf den Link für Seite 2 klicke zeigt er mir nicht die 2 Seite zu dem gesuchten Begriff an, sondern alle Einträge der Datenbank.Die Suche ist ganz einfach mit <form> usw. aufgebaut und sendet den Suchbegriff mit post an die Ergebnisseite.
In der Ergebnisseite wird dann die Datenbank nach dem Suchwort durchsucht und entsprechend die Ergebnisse ausgegeben.
So, nun zu dem Problem. Kann es sein, dass wenn ich auf Seite 2 klicke er die Variable schon wieder vergessen hat und deswegen nicht mit weitergibt?
Frage ist nur wie ich sie wieder weitergeben kann. Muss ich da wieder ein <form> script basteln? Oder könnte man das ganz unkonventionell mit einem Formscript lösen?Gruß
OPa Host macht das so:
<form action="yyy.php" method="POST" name="xxx" target="_self">
<?php
/************************************************************
// Liest die $_POST aus und gibt Felder gleichen Namens und Inhalts in das umschliessende Formular aus
// Die Liste $felder enthält genau die Formularelementnamen, die nicht übermittelt werden.
$felder = array("intro","weite","feld");
$postschl=array_keys($_POST);
for($i =0;$i<count($_POST);$i++)
{
$l = true;
for($k=0;$k< count($felder);$k++){if($felder[$k]==$postschl[$i]){ $l = false;}}
if($l)echo"<input name='".$postschl[$i]."' type="text" value='".$_POST[$postschl[$i]]."'style='display:none'>\n";
}
**************************************************************** [seaktind] */
?>
<input name="intro" type="text" value='1' style='display:none'>
...
vieleich klappts