2009-05-20 19 views
0

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

3

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.

+0

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

4

der Super globale

$_REQUEST 
+0

Es enthält $ _GET, $ _POST und $ _COOKIES +1 für mich – Eineki

+0

Globals sind böse. Und Umfang in PHP saugt. –

+1

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

0

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)

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

Verwandte Themen