Ankündigung

Einklappen
Keine Ankündigung bisher.

value per hidden form bei anderem form mitsenden

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • value per hidden form bei anderem form mitsenden

    Hi,
    ich habe eine Suchfunktion, welche sobald die Suche mehr als 30 Einträge zurückgibt mehrere Seiten erzeugen soll.
    Beim Auswählen einer anderen Seite (per dropdown-menu) soll a) der eintrag bei dem die Seite anfängt per GET übermittelt werden und b) per hidden field die sucheingabe als POST.

    Mit meinem Code funktioniert das übermitteln leider nicht wie es soll. (wenn "location=document...." als erstes in AllesSenden() ist, wird der Sucheintrag nicht übermittelt, wenn "document.search.submit()" als erstes ist, passiert bei auswählen eines anderen Eintrages garnichts.
    PHP-Code:
    <script language="JavaScript">
    function AllesSenden()
    {
        document.search.submit();
    location=document.jump.menu.options[document.jump.menu.selectedIndex].value;
      
      
    }
    </script>


    <table>
    <tr>
    <td>
    <form name="jump">


    Seite: <select name="menu" onChange="AllesSenden();" value="GO">

    <?php

    for ($count 1$count $page $count++) {
    echo 
    "<option value=\"http://localhost/test/show.php?start="$count 30 ."\">".$count."</option>";
    }

    echo 
    "<option selected value=\"http://localhost/test/show.php?start="$page 30 ."\"><b>".$page."</option>";

    for (
    $count $page 1$count $pages $count++) {
    echo 
    "<option value=\"http://localhost/test/show.php?start="$count 30 ."\">".$count."</option>";
    }

    ?>
    </select>
    </form>
    </td>
    <td>
    <form name="input" action="<?php echo $_SERVER['PHP_SELF']; ?>" method ="POST">
    Search: <input type="text" name="search" />
    <input type="submit" value="Submit" />
    </form>  
    </td>
    </tr>
    </table>

    <form name="hidden" method="post">
    <input type="hidden" name="search" value="<?php echo $_POST['search'?>"/>
    </form>
    </div>

  • #2
    Natürlich funktioniert das so nicht.

    Warum packst du nicht einfach beides, hidden-Felder und Select-Feld, in ein Formular?
    (Und in den Options dann als value natürlich nur die Seitenzahl angeben.)

    Kommentar


    • #3
      Zitat von ChrisB Beitrag anzeigen
      Natürlich funktioniert das so nicht.

      Warum packst du nicht einfach beides, hidden-Felder und Select-Feld, in ein Formular?
      (Und in den Options dann als value natürlich nur die Seitenzahl angeben.)
      Müssen nicht alle inputs innerhalb eines forms immer die gleiche Methode benutzen?

      Kommentar


      • #4
        Zitat von Zulakis Beitrag anzeigen
        Müssen nicht alle inputs innerhalb eines forms immer die gleiche Methode benutzen?
        Die Inputs benutzen gar nichts, sondern das Formular wird mit einer Methode versandt, ja.

        Ist das ein Problem?
        Da deine Suchabfrage auf die Werte aus den hidden-Feldern angewiesen ist, ergibt die Übergabe der Seitenzahlen per GET doch sowieso kaum einen Sinn - denn bookmark- oder verlinkbar werden deine Suchergebnisse dadurch dann ja doch nicht.

        Wenn's aber doch unbedingt so sein soll, und du aktiviertes JavaScript voraussetzen willst - dann pack die gewählte Seitenzahl halt als URL-Parameter ins action-Attribut des Formulars, bevor du es absendest. Dann kannst du im Script per $_GET darauf zugreifen, und auf die hidden-Felder nach wie vor per $_POST. (Der Request wird natürlich trotzdem mit der Methode POST verschickt.)

        Kommentar

        Lädt...
        X