2017-10-18 3 views
0

Ich entwickle gerade ein Tabellenlayout. Die Tabellen verwenden einen Paginator und eine Filterfunktion in PHP.HTML-URL-Codierung für GET-Parameter für Abfrage deaktivieren

Alle Werte werden als GET-Parameter übertragen. Der Paginator verwendet beispielsweise & Limit = 20 & page = 5. Der Filter baut auf einer Tabellenzeile in den Eingabefeldern auf. Was ich meine ist, dass jede Spalte ihr eigenes Eingabefeld hat.

Sobald der Submit-Button geklickt wurde, werden die Daten über GET an sich selbst übergeben, so dass der nächste Seitenaufruf die Daten korrekt abfragt/filtert.

Zum Beispiel, wenn ich will die Postleitzahl filtern die URL wie folgt sein: & limit = 20 & page = 5 & Postleitzahl = 5

Weil ich Suchanfrage wie% 5% ermöglicht zu zeigen, Alle Postleitzahlen sind 5, wobei das Ergebnis nicht auf 5 beschränkt ist. Es zeigt alle Daten an, die an irgendeiner Stelle des Wertes eine 5 haben.

Wenn ich jedoch die Postleitzahlen mit allen Ergebnissen mit 58 filtern möchte, gebe ich% 58% ein. Wie bei der URL-Codierung wird die URL leider nicht wie erwartet & Postleitzahl =% 58% sein. Es wird & Postleitzahl = X% sein.

Die Frage ist, ob es irgendwie möglich ist, die richtigen Werte in die URL zu bekommen?

Das Problem liegt auf Browser-Ebene. Wenn ich die URL von & Postleitzahl = X% zu & Postleitzahl =% 58% direkt ändern und drücken Sie Enter, würde Chrome es sofort in X% übersetzen.

Vielleicht möglich, es ist irgendwie mit Meta-Tags, HTTP-Header oder Javascript etc.

ich es über GET statt POST täte, weil es - scheinbar - einfacher mit dem paginator zu integrieren.

Sorry für mein schlechtes Englisch. Jede Hilfe würde sehr geschätzt werden.

Vielen Dank.

+1

Entschuldigen Sie, ich hätte sagen sollen, dass ich MySQL verwende. Perfekt, so mache ich es jetzt. Danke für deine Antwort! – Dusty48

+0

Froh das hat funktioniert! Ich habe den Kommentar auf eine Antwort verschoben – billrichards

Antwort

0

Da Sie %% Suchvorgänge erwähnen, gehe ich davon aus, dass Sie MySQL oder ein anderes SQL Backend zur Abfrage der Daten verwenden. In diesem Fall würde ich vorschlagen, den Querystring immer als postcode = 58 & page = 1 zu formatieren und einen anderen Parameter hinzuzufügen, um anzuzeigen, ob es eine% Wildcard% Suche oder eine exakte Übereinstimmung sein soll %% am Backend beim Ausführen der Abfrage.

+0

das ist die Lösung, die ich verfolgt habe. Die anderen Antworten können jedoch auch eine korrekte Lösung bieten. – Dusty48

1

Sie sollten das "%" Zeichen selbst (das wäre "% 25") entfliehen. PHP sollte intelligent genug sein, um dies automatisch zu decodieren.

&postcode=%58% sollte also &postcode=%2558%25 geworden, die PHP so dekodieren, dass $_GET['postcode']'%58%' ist.

+0

Danke für Ihre Antwort, es ist ein guter Vorschlag. Allerdings verwende ich die erwähnte Lösung als Kommentar zu meiner Frage von Billrichards. – Dusty48

1

Sie sollten urlencode Ihre Werte vor dem Einfügen in die Parameter.

Insgesamt, wenn Sie mit MySQL arbeiten, stimme ich mit billrichards.

+0

Danke für Ihre Antwort, es ist ein guter Vorschlag. Allerdings verwende ich die erwähnte Lösung als Kommentar zu meiner Frage von billrichards – Dusty48

Verwandte Themen