2012-12-31 11 views
16

Utilizzo il ckeditor e desidero serializzare i dati dell'area di testo insieme a tutti gli altri elementi. È possibile?Posso aggiungere dati a un array già serializzato?

Vorrei aggiungere il taData a vals se possibile.

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

Beh ... '.serialize' restituisce una stringa. Puoi sempre modificare la stringa se questo è ciò che vuoi sapere. Ma forse sei più interessante in '.serializeArray()': http://api.jquery.com/serializeArray/. –

+0

Grazie Felix. Puoi per favore mostrarmi come farlo? Sono analfabeta JQ. – NaN

+0

beh, serializzare il motto principale era quello di ottenere valori da tutto il modulo e renderlo stringa! per esempio. ? name = user & password = heart –

risposta

30

.serialize restituisce una stringa, in modo da poter sempre modificare la stringa, ma io non consiglierei questo, manipolazione di stringhe può ottenere disordinato.

Utilizzare invece .serializeArray[docs] per creare una rappresentazione di matrice dei dati e quindi aggiungervi i dati. Ogni elemento dell'array è un oggetto con una proprietà name e value:

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

Tutti i metodi jQuery Ajax capiranno questa struttura e serializzare i dati correttamente. Nel caso in cui si desidera creare una stringa serializzata (proprio come .serialize), è possibile passare la matrice per $.param[docs]:

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

Grazie amico mio! Questo era quello che stavo cercando. :) – NaN

+0

Prego :) Tutto il meglio per il 2013! –

+0

Grazie Felix, anche a te amico mio! – NaN

Problemi correlati