2011-01-05 13 views
3

würde Ich mag so etwas wie dieser (Pseudo-Code) tun:

<form id='f1'> 
<input type='text' name='t1'/> 
<input type='text' name='t2'/> 
<input type='text' name='t3'/> 
</form> 

var ids=[9,32,45]; 
$.post(
"test.php", 
{$("#testform").serialize(), page: 7, ids: ids}, 
function(){ alert('success!'); } 
); 

auf der Serverseite Ich möchte die Felder von dem bekommen Formular + Seite und IDs

ist es möglich?

+0

sollten Sie ajaxForm http://jquery.malsup.com/form/ überprüfen, zumindest können Sie sehen, wie sie die Formularwerte serialisieren. – dotjoe

Antwort

7

Sie benötigen das Array von Werten mit .serializeArray() erstellen (wobei als .serialize() eine Zeichenfolge erzeugt), dann, um es hinzuzufügen, bevor als data Argument $.post() verwenden, wie folgt aus:

var data = $("#testform").serializeArray(); 
data.push({ name: "abc", value: "1" }); 
data.push({ name: "ef", value: "3" }); 
$.post("test.php", data, function(){ alert('success!'); }); 

Dann übergeben Sie in der Array, genau wie das Eingeben eines Objekts, und dann $.param() wird intern aufgerufen, um es in die Datenzeichenfolge für die POST-Abfrage zu verwandeln.

+0

Entschuldigung ich habe einen weiteren Parameter (Array) hinzugefügt, weiß nicht, ob es wichtig ist – Omu

+0

@Omu - nein, egal, schieb es einfach auf das Array, so viele wie du willst. Beachten Sie, dass Sie steuern können, wie das Array mit '$ .param (data, true)' anstelle von 'data' oder vor dem Aufruf serialisiert wird:' $ .ajaxSettings.traditional = true' (defaults false). –

+0

Sorry, es funktioniert nicht, ich habe meine Frage erneut bearbeitet, so dass es genau das ist, was ich mache – Omu

Verwandte Themen