Hinzufügen von / push () Werten zu Ajax POST in jQuery serialize () oder serializeArray ()

7

jQuery

%Vor%

Der [b] -Teil funktioniert sehr gut; Warum funktioniert der [a] -Teil nicht? Dies wird nicht gedrängt:                  ,{"name":"total","value": [..]

php Ausgabe über print_r ($ _POST)

[b] -Version

Array ( [pnr_item_1] => 1 [pkt_item_1] => HostingXXL [desc_item_1] => 20GB, 1x.de [qty_item_1] => 4 [price_item_1] => 15.5 .... [action] => save [mysql] => update [total] => 62 )

[a] -Version

Array ( [pnr_item_1] => 1 [pkt_item_1] => HostingXXL [desc_item_1] => 20GB, 1x.de [qty_item_1] => 4 [price_item_1] => 15.5 .... [action] => save )

Hoffentlich ist mein Problem / meine Frage klar. Was ist die beste Methode? Gibt es bessere Methoden, um so ID?

    
hoerf 15.12.2010, 12:05
quelle

2 Antworten

26

Es sollte so aussehen:

%Vor%

Was Sie auf das Array schieben möchten, sind Objekte in der Form {name: "name", value: "value"} , dann werden sie korrekt serialisiert / codiert. Die Option [a] (die korrigierte Form davon) ist im Allgemeinen viel besser als die Option [b] , da [b] nicht eigenschaftscodiert ist und in dem Moment fehlschlägt, in dem ein ungültiges Zeichen eingefügt wird vermasseln Sie Ihre Variablen. In diesem Fall, weil Sie den angehängten Inhalt unter Kontrolle haben, sind Sie sicher ... aber es ist am besten, die Route zu wählen, die immer funktioniert: Erstellen Sie niemals Ihr data -Argument als String direkt.

Was das warum [a] nicht funktioniert:

%Vor%

Das ist nicht gültig, du kannst nicht zwei Dinge auf einmal zuweisen, du musst es entweder so machen:

%Vor%

oder das (meine bevorzugte Methode, wie oben verwendet):

%Vor%

.... oder, $.merge() (ein bisschen verschwenderischer, aber sauberer aussehend), mögen das:

%Vor%     
Nick Craver 15.12.2010, 12:17
quelle
1

Sie können sowohl die Formulare als auch serializeArray

kombinieren %Vor%     
Shaishav Shah 28.09.2011 15:45
quelle

Tags und Links