2012-12-31 15 views
16

Ich benutze ckeditor und möchte die Textarea-Daten zusammen mit allen anderen Elementen serialisieren. Ist das möglich?Kann ich Daten zu einem bereits serialisierten Array hinzufügen?

Ich würde gerne die taData an Vals anhängen, wenn möglich.

var vals = $("#post").find('input,select').serialize(); 
var taData = CKEDITOR.instances.ta1.getData(); 
+1

Nun ... '.serialize' einen String zurückgibt. Sie können die Zeichenfolge immer ändern, wenn Sie das wissen möchten. Aber vielleicht sind Sie interessanter in '.serializeArray()': http://api.jquery.com/serializeArray/. –

+0

Danke Felix. Kannst du mir bitte zeigen, wie das geht? Ich bin Analphabet. – NaN

+0

gut, serialisieren Hauptmotto war es, Werte aus der ganzen Form zu bekommen und es String machen! z.B. ? name = user & password = heart –

Antwort

30

.serialize einen String zurückgibt, so dass Sie immer die Zeichenfolge ändern können, aber ich würde nicht empfehlen, können String-Manipulation chaotisch.

Verwenden Sie stattdessen .serializeArray[docs], um eine Array-Darstellung der Daten zu erstellen und dann die Daten hinzuzufügen. Jedes Element des Array ist ein Objekt mit einer name und value Eigenschaft:

var vals = $("#post").find('input,select').serializeArray(); 
vals.push({name: 'nameOfTextarea', value: CKEDITOR.instances.ta1.getData()}); 

Alle jQuery Ajax Methoden werden diese Struktur verstehen und die Daten richtig serialisiert. Falls Sie eine serialisierte Zeichenfolge erstellt werden soll (wie .serialize), können Sie das Array $.param[docs] passieren:

var query_string = $.param(vals); 
+0

Danke mein Freund! Das war, was ich suchte. :) – NaN

+0

Gern geschehen :) Alles Gute für 2013! –

+0

Danke Felix, dir auch mein Freund! – NaN

Verwandte Themen