Ich habe eine Suchfunktion auf meiner Website, die auf POST basiert. Nun möchte ich jedoch Links bereitstellen können, die nach bestimmten Schlüsselwörtern suchen, aber das ist natürlich nicht möglich, da das Formular GET-Anfragen nicht behandelt. Gibt es einen Weg dahin?GET-Anfragen an POST-basiertes Skript senden?
Antwort
die Methode der Form Set verwenden
<form action="/search" method="GET">
Das funktioniert, wenn Ihre Suche App auf dem Server ermöglicht über get der Suche zu bekommen. Beachten Sie, dass Sie sowieso GET für die Suche verwenden sollten. POST ist, Änderungen vorzunehmen und Daten zu veröffentlichen. Sie erhalten Suchergebnisse, also verwenden Sie GET.
der Super globale
$_REQUEST
Es enthält $ _GET, $ _POST und $ _COOKIES +1 für mich – Eineki
Globals sind böse. Und Umfang in PHP saugt. –
Hmm ist nicht $ _GET, $ _POST oder $ _COOKIES etwas notwendig für den Aufbau einer Webanwendung in PHP: D, ich glaube, Sie verstehen das Konzept oder Superglobals in PHP ... –
Sie können Javascript verwenden, um das Formular über einen Link zu senden. Ein Beispiel, wie das zu tun ist hier zu finden:
http://mentaljetsam.wordpress.com/2008/06/02/using-javascript-to-post-data-between-pages/
ich bei Änderung Ihrer Form aussehen würde mit GET zu bedienen.
GET für den Suchmechanismus ist geeignet, da GET-Methoden für Anfragen verwendet werden, die idempotent sind. d. h. Sie können sie wiederholt ausführen, ohne sich um den Statuswechsel zu kümmern. Die Semantik von POST ist, dass Sie Daten zu veröffentlichen und eine Änderung durchführen (unabhängig davon, ob das wirklich in diesem Szenario geschehen)
<input type="text" id="searchcat"></input>
<form method="POST">
...
<input type="submit" onclick="this.form.action='/search?cat=' + document.getElementById('searchcat').value"></input>
</form>
Vielleicht wird diese Lösung helfen? Natürlich scheint die "searchcat" -Steuerung eine Art Combobox zu sein. Und Onclick-Handler besser als JS-Funktion, nicht inline ...
In der Tat, wenn Sie diese Submit - Browser generiert generiert alle HTTP-Header, sammelt den Anfragetext aus Ihren Formulardaten und sendet dann Anfrage mit URL, GET-Variablen in sich selbst enthalten. Auf diese Weise haben Sie sowohl GET- als auch POST-Daten in Ihrem serverseitigen Handler für die Suche.
Noch besser, um GET-Variablen in Aktion zu ändern, indem Sie onChange auf Ihren Steuerelementen behandeln. Aber das Beispiel ist ohne IDE länger und schwer zu lesen.
- 1. Nachricht an ein Python-Skript senden
- 2. Schaltfläche Wert an Controller senden von Skript
- 3. JSON über AJAX an PHP-Skript senden
- 4. Senden php Senden an MySQL
- 5. Senden von Daten an PHP-Skript ohne AJAX
- 6. Pfad Datei Ich sende mit => An C# Skript senden
- 7. Senden von Eingabe an ein C-Programm von Shell-Skript
- 8. ipython-Funktion zum Senden des letzten Befehls an das Skript
- 9. Senden eines simulierten Tastendrucks vom ZLE-Skript an das Terminal
- 10. Können wir mit Python-Skript Nachrichten an Benutzer senden?
- 11. So senden Sie hartcodierte Ereignisse per Python-Skript an piwik
- 12. Daten nicht senden an
- 13. Minicom senden automatisieren Skript
- 14. Kann ich eine XML-Datei von .py-Skript an .php-Skript senden, ohne API zu verwenden
- 15. Parameter an CMD senden
- 16. Formular an iframe senden?
- 17. Verbindungszeichenfolge an ApplicationDBContext senden
- 18. Parameter an Addhandler senden?
- 19. NSArray an Javascript senden
- 20. Empfängerdaten an Aktivität senden
- 21. Senden Sie Formulardaten an Javascript beim Senden
- 22. Senden Sie PHP-Zeichenfolge an Javascript auf Senden
- 23. Alle Bild src Anfrage an PHP-Skript
- 24. E-Mail von einem Windows-Skript senden
- 25. Formular an (eigenen) Server von localhost senden
- 26. Senden von ctrl-c an bestimmte Bildschirmsitzung
- 27. Senden Argument aus CGI-Skript als Bash-Skript-Argument
- 28. Laravel senden E-Mail, Konfiguration und Skript senden
- 29. Modulversion als Befehlszeilenargument an SBT senden
- 30. Pandas Dataframe an Java-Anwendung senden
Ich wusste dies, wollte aber nicht ändern weil ich annahm, dass es lange dauern würde. Es stellte sich heraus, dass es einfach genug war und jetzt funktioniert es. –