GET-Formular an vorhandene URL anhängen - Druckversion +- MyBB.de Forum (https://www.mybb.de/forum) +-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html) +--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html) +--- Thema: GET-Formular an vorhandene URL anhängen (/thread-33154.html) |
GET-Formular an vorhandene URL anhängen - Juventiner - 15.02.2016 Hallo zusammen, ich bin bereits vor einiger Zeit als ich ein blutiger Anfänger war auf das Problem gestoßen, jetzt wird es jedoch unumgänglich und ich möchte gerne eine Lösung finden die am elegantesten ist. Mein Problem: Meine Homepage ist über die domain.tld/index.php verfügbar. Alle Seiten werden über das Parameter ?page=SEITENNAME angesteuert. Wenn ich nun jedoch ein GET-Formular habe, wird wieder rausgelöscht und die Homepage ist mehr oder weniger defekt. Es gibt nun die Lösung das über die Session-Variable zu löschen und die mit dem hidden-Formularfeld, welches mein page-Parameter enthält. Gibt es noch andere Lösungen, welche ggf. eine Einstellung sind mit welcher es nicht notwendig ist diese Umwege zu gehen? Beste Grüße RE: GET-Formular an vorhandene URL anhängen - StefanT - 16.02.2016 Ich verstehe leider nicht genau, was du meinst. Wie sieht dein Formular aus? RE: GET-Formular an vorhandene URL anhängen - [ExiTuS] - 16.02.2016 (15.02.2016, 21:30)Juventiner schrieb: [...]Ich gehe davon aus, dass du PHP nutzt!? Dann: Du kannst im action-Parameter des Formulars ein "?<?php echo $_SERVER['QUERY_STRING']; ?>" anhängen. In der Server-Variable QUERY_STRING sind alle Parameter enthalten, die über die Adresszeile übergeben werden, so auch dein "page=". Auf diese Weise sparst du dir ein weiteres input-hidden-Element und musst auch nichts mehr manuell übergeben. Alle Felder aus dem Formular (GET) werden dann entsprechend zusätzlich an die in action="" gegebene URL angefügt. Konkretes Beispiel Aufruf: http://www.test.com/index.php?page=contact Aus: <form method="GET" action="index.php?<?php echo $_SERVER['QUERY_STRING']; ?>" ...> <input name="test1" value="x"> <input name="test2" value="y"> wird: <form method=GET" action="index.php?page=contact" ...> <input name="test1" value="x"> <input name="test2" value="y"> Und nach dem Absenden geht es an: index.php?page=contact&test1=x&test2=y Ist es das, was du beabsichtigst? Oder habe auch ich die Frage falsch verstanden!? RE: GET-Formular an vorhandene URL anhängen - Juventiner - 16.02.2016 Hallo, du hast das Grundprinzip schon verstanden. Nur werden beim absenden vom get-Formular die Parameter die im action drinstehen entfernt. Beispiel: index.php?page=Search Code: <form action="index.php?<?php echo $_SERVER['QUERY_STRING']; ?>" method="get"> Wird zu: index.php?searchstring=INHALT&start=suchen RE: GET-Formular an vorhandene URL anhängen - StefanT - 16.02.2016 Du musst die Attribute aus dem Query String als input type="hidden" schreiben. Siehe auch: http://stackoverflow.com/questions/1116019/submitting-a-get-form-with-query-string-params-and-hidden-params-disappear RE: GET-Formular an vorhandene URL anhängen - [ExiTuS] - 16.02.2016 Das betrifft jetzt nicht die Lösung deines Problems (oder besser: des GET-URL-Override-Problems). Aber wenn du stattdessen das Formular von GET auf POST umstellst, umgehst du diesen Override. Es scheint ohnehin sinnvoller ein Suchformular mittels POST zu realisieren, um die URL nicht unnötig mit Suchbegriffen oder Benutzereingaben zu "belasten". Zudem wird nicht gecached, es besteht kine Begrenzung der eingegebenen Länge von input, beim Browser-Vor/Zurück wird das form ernut gesendet und die Browser-Chronik bleibt sauber [ExiTuS] |