Warum erscheint dieses Semikolon, wenn ich jQuery serialize () für Eingaben mit eckigen Klammern im Namen verwende?

8

Ich habe folgenden HTML:

%Vor%

Ich überprüfe die ersten beiden Optionen und sende sie über ajax in jQuery an den Server:

%Vor%

Firebug zeigt mir die Daten, die gepostet wurden:

Optionen Optionen% 5B% 5D = Optionen_1 & amp; Optionen% 5B% 5D = Optionen_2
So weit, so gut.

In myfile.php bekomme ich die POST-Variable wie folgt:

%Vor%

Wenn ich nun $ options ausspreche, bekomme ich folgendes:

%Vor%

Woher kommt dieses Semikolon vor dem zweiten Klammerpaar? Das macht mich verrückt.

Ich habe utf8_decode bereits in den POST-Daten sowie in urldecode und rawurldecode verwendet. Nichts verändert sich. Ich entkam auch den eckigen Klammern im Ajax-Aufruf wie folgt:

%Vor%

Das hat auch nicht geholfen. Irgendwelche Ideen jemand?

    
Andreas 05.04.2011, 17:46
quelle

4 Antworten

2

Ich hatte genau dieses Problem und konnte es nur mit ".serializeArray ()" zum Laufen bringen. Ich hoffe, das war das, wonach Sie gesucht haben.

%Vor%

Für mich gibt dies eine Standardzeichenfolge im selben Format wie GET-Anfragen aus.

    
DominicM 18.07.2012 15:25
quelle
1

Ich empfehle, [] von HTML-Namen zu entfernen, es ist schlechtes Design. Es kann ein Problem auf der jQuery Seite oder PHP geben. Ich sehe keine anderen Probleme in Ihrem Code.

Welche Zeichen sind im Attribut HTML-Name zulässig?
Was sind gültige Werte für die ID-Attribut in HTML?

    
Peter Ivan 17.12.2012 09:06
quelle
0

Warum verwenden Sie die Klammern [] und den gleichen Namen für jedes Eingabeelement? Wenn ich dich richtig verstehe, kannst du mit einem Umhüllungselement serialisieren.

%Vor%

Sie können also wie

serialisieren %Vor%     
Sam Segers 05.04.2011 18:15
quelle
0

Vielleicht möchten Sie dies lesen versuche das:

%Vor%

oder das

%Vor%

true in $.param gibt an, dass die traditionelle Methode zum Serialisieren eines Objekts verwendet werden soll. Die traditionelle Methode verwendet keine eckigen Klammern, wenn sie auf den gleichen Parameternamen trifft.

    
Sergio 01.08.2013 09:40
quelle