我有jQuery生成一個列表項與幾個輸入字段時有人點擊一個特定的鏈接。鏈接如下:通過jQuery的傳遞數組ajax
<a href="#" id="add_sublink" data-sublink_count = "0">Click Here to add more sub links</a>
jQuery的看起來像這樣
$('#add_sublink').live("click", function(){
var count = $(this).attr('data-sublink_count');
var form = "<li>Link Name:<br />" +
"<input type='text' size = '40' id='sublinkname' name='sub_link_name_" + count + "' value=''/><br />" +
"Link URL:<br />" +
"<input type='text' size = '40' id='sublinkurl' name='sub_link_url_" + count + "' value=''/>" +
"</li>";
$('#sublink_list').append(form);
var newcount = (Number(count) + Number(1));
$(this).attr('data-sublink_count', newcount)
return false;
});
這是它產生
<li>Link Name:<br>
<input type="text" value="" name="sub_link_name_0" id="sublinkname" size="40"><br>
Link URL:<br>
<input type="text" value="" name="sub_link_url_0" id="sublinkurl" size="40"><br>
</li>
每次他們該鏈接一個新的列表項上單擊HTML被添加。我也在計數它們,並將計數放在名稱上,以便每個輸入項都是唯一的。
我可能有一個或多個列表項,其中包含輸入值。當點擊提交按鈕時,我正在用jquery收集信息並嘗試通過ajax發送信息。
$('.save_link').live('click', function() {
var linkID = $(this).attr('data-link_id');
$('#sublink_list').children().each(function(index) {
var this_sublink_name = $(this).find('#sublinkname').val();
var this_sublinkurl = $(this).find('#sublinkurl').val();
sub_array[index]['name'] = this_sublink_name;
sub_array[index]['url'] = this_sublinkurl;
var index = (Number(index) + Number(1));
});
//send the info
$.ajax({
url: 'update_link.php',
data: jQuery.extend(
{linkID: linkID},
{sub_array: sub_array}),
type: 'POST',
success: function(results) {
if (results == "error"){
//then display an error
}else{
//display success
}
}
});
return false;
});
一切工作正常,但ajax沒有正確發送陣列sub_array
。
我已閱讀,建議發送陣列這樣
{'sub_array[index][name]': 'value'} //value would be replaced with the actual value
其他地方但由於列表項是動態的,我不知道有多少會出現,也不知道該值。
我也曾嘗試發送的數據是這樣的:
data: 'linkID=' + linkID +
'&sub_array=' + sub_array,
但它也沒有工作。
在這種情況下,發送具有未知數量的數組項和未知值的多維數組的最佳方式是什麼?
我如何將它轉換爲JSON? – Jason 2011-03-13 19:57:50
你可以在這裏使用JSON庫:http://www.json.org/js.html – DhruvPathak 2011-03-13 20:00:46
這裏是一個PHP的例子,將其轉換回數組/對象http://php.net/manual/en/function。 json-decode.php,你可以在watever後端的類似行上解碼它 – DhruvPathak 2011-03-13 20:01:48