2011-01-05 43 views
3

我願做這樣的事情(僞代碼):

<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!'); } 
); 

在服務器端我想從田野表格+頁和ID

是否有可能?

+0

你應該檢查出ajaxForm http://jquery.malsup.com/form/至少你可以看到他們如何序列化表單值。 – dotjoe 2011-01-05 15:29:11

回答

7

你需要用.serializeArray()(其中作爲.serialize()創建一個字符串),然後使用作爲data參數之前給它添加到$.post(),像這樣創造價值的數組:

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

然後,你將在數組,就像傳遞一個對象一樣,然後$.param()被內部調用,將其變成用於POST查詢的數據字符串。

+0

對不起,我已經添加了一個參數(數組),不知道它是否重要 – Omu 2011-01-05 15:22:38

+0

@Omu - nope,無所謂,只要將它推到陣列上就可以了,儘可能多。請注意,您可以控制數組如何使用'$ .param(data,true)'而不是'data'序列化,或者在調用:'$ .ajaxSettings.traditional = true'(默認爲false)之前進行控制。 – 2011-01-05 15:23:41

+0

對不起,它不工作,我再次編輯我的問題,以便它將完全是我正在做的事情 – Omu 2011-01-05 15:35:51