Gerch2003: Variable auf nächste Seite übergeben

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ß

  1. 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

    1. 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ß

      1. 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!

        1. Wunderbar, genau das wollte ich wissen :-)

          Dankesehr

      2. 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

  2. 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