2012-10-04 73 views
1

我可以'如何做到這一點。傳遞發佈數據jquery

我有幾個隱藏字段

<input type="hidden" id="order_1" name="order_1" value="1"> 
<input type="hidden" id="order_2" name="order_2" value="2"> 
<input type="hidden" id="order_3" name="order_3" value="3"> 

<input type="hidden" name="ids[]" value="1"> 
<input type="hidden" name="ids[]" value="2"> 
<input type="hidden" name="ids[]" value="3"> 

等。 的想法是通過這樣的AJAX來傳遞數據。

var id = $('input').attr('name') 
$.post('http://foobar.com/ajax.php', {ids : ids, order: order}, function(data){ 

}); 

我無法弄清楚的是如何收集數據。

論ajax.php另一邊,我wan't獲得這樣

echo $_POST['order_1']; 
echo $_POST['order_2']; 
...... 
etc 

回答

0

我覺得你找.serialize。請參閱api

嘗試這樣:

var postData = $('input:hidden').serialize(); 

$.post('http://foobar.com/ajax.php', postData, function(data){ 

}); 

請記住我使用了隱藏的輸入選擇器可以由你改變爲更具體,比如用表格ID。

0

錯誤#值1

<input type="hidden" id="order_1" name="order_1 value="1"> 
<input type="hidden" id="order_1" name="order_1 value="1"> 
<input type="hidden" id="order_1" name="order_1 value="1"> 

應該

<input type="hidden" id="order_1" name="order_1" value="1"> 
<input type="hidden" id="order_1" name="order_1" value="1"> 
<input type="hidden" id="order_1" name="order_1" value="1"> 

錯誤#2

永遠永遠不會永遠使用相同的ID。使用不同的!也爲name屬性


錯誤#3

您通過

$.post('http://foobar.com/ajax.php', {ids : ids

,而不是

$.post('http://foobar.com/ajax.php', {ids : id


更新

假設

<input type="hidden" id="order_1" name="order_1" value="1"> 
<input type="hidden" id="order_2" name="order_2" value="2"> 
<input type="hidden" id="order_3" name="order_3" value="3"> 

和js: VAR yourArray = [];

$.each($("input[type='hidden']"), function(key, value){ 
    yourArray.push($(this).attr("name")); 
}); 

它傳遞給阿賈克斯

$.post('http://foobar.com/ajax.php', {ids : yourArray ...

+0

其實您注意到的錯誤在我的代碼中已修復。但我仍然無法得到如何收集和傳遞數據給ajax – pavelkor

+0

查看更新的答案 –

0

這會將所有表單數據發佈到ajax.php。你必須給你的<form>標籤的ID(在這種情況下,它的id = 'formId')

$.post('http://foobar.com/ajax.php', $('#formId').serializeArray()); 

您可以要求與IDS:

$ids = $_POST['ids']; 
0

要傳遞的價值觀

<input type="hidden" id="order_1" name="order_1" value="1"> 
<input type="hidden" id="order_2" name="order_2" value="2"> 
<input type="hidden" id="order_3" name="order_3" value="3"> 

<input type="hidden" name="ids[]" value="1"> 
<input type="hidden" name="ids[]" value="2"> 
<input type="hidden" name="ids[]" value="3"> 


var ids_arr = new Array(); 
$("input[name='ids[]']").each(function() { 
    ids_arr.push($(this).val()); 
}); 
$.post('http://foobar.com/ajax.php', {"ids" :ids_arr , "order_1": $('#order_1').val(),"order_2":$('#order_2').val(),"order_3":$('#order_3').val()}, function(data){ 

}); 

爲了得到在PHP側的值

echo $_POST['order_1']; 
echo $_POST['order_2']; 
echo $_POST['order_3']; 
var_dump($_POST['ids']);