Die Übergabe des Formulars mit einer Abfragezeichenfolge "key = val", die sich bereits im Attribut "action" befindet, ignoriert diese Abfragezeichenfolge

8

Ich versuche also, eine Seite an sich selbst zu übergeben, während die aktuelle Abfragezeichenfolge der Seite beibehalten wird.

Also ist die Seite sb.local/sb/cat.php?brandcode=JM&t=cat_items Ich ziehe die Abfragezeichenfolge ab und lege sie in das HTML-Formular zurück, um die Parameter beizubehalten. Dies ist die resultierende Form:

%Vor%

Wenn ich das Formular abschicke, indem ich das Dropdown-Menü für Aetrex (Wert AX) auswähle, geht es jedoch zu einer URL von:

sb.local/sb/cat.php?brandcode=AX mit anderen Worten, es schneidet die "t = cat_items" aus, die in der Aktion sind. Es schneidet auch den "brandcode = JM" aus, aber ich würde das fast erwarten, da sie Duplikate sind.

Das war nicht das, was ich erwartet hatte. Ich erwartete, dass, wenn es eine Abfragezeichenfolge im action-Attribut gibt, diese der Abfragezeichenfolge Formularwerte anhängen würde (zB sb.local/sb/cat.php?brandcode=JM&t=cat_items&brandcode=AX ). Stattdessen scheint sie die Abfragezeichenfolge vollständig zu ersetzen diese Elemente, die in der Form sind.

Ist das Formularaktionsattribut nicht zum Speichern von Abfrageparametern geeignet, nur grundlegendere URL-Informationen?

Bearbeiten: Beachten Sie, dass ich das umgehen kann, indem ich jeden Parameter analysiere und dann jeden Parameter manuell in ein eigenes verstecktes Feld setze, mit Ausnahme von Parametern, die ich ändern möchte, ich war einfach in der Hoffnung, dass es einen einfacheren Weg gab.
Ich testete mit einer nicht konfliktbehafteten Abfragezeichenfolge und das wurde im Ganzen ersetzt, auch wenn es keinen Konflikt gab (in Firefox), also basierend darauf scheint es, dass Abfragezeichenfolgen im Aktionsattribut von get-Formulare nutzlos sind? Oder vermisse ich etwas.

    
Kzqai 27.01.2012, 19:35
quelle

2 Antworten

9

Ich weiß, das ist eine alte Frage, aber die Lösung ist eigentlich ziemlich einfach (und ordentlich!).

Sie müssen lediglich den Querystring mit versteckten Eingabefeldern im Format name="key" und value="value" senden.

? brandcode = JM & amp; t = cat_items würde "übersetzen" in:

%Vor%

Entfernen Sie die Abfragezeichenfolge vollständig von Ihrem action .

    
Christian Lundahl 19.11.2013, 13:44
quelle
1

Sie können die "POST" -Methode anstelle der "GET" -Methode für die Formularübermittlung verwenden, wenn die Methode keine Rolle spielt.

    
Saravanan S 27.01.2012 20:33
quelle

Tags und Links