如何创建包含键和值的javascript数组?

时间:2011-07-02 10:18:38

标签: php javascript jquery

使用计数器动态生成的文本框很少,所以它看起来像这样

form.append('Street: <input type="text" id="street'+counter+'" /> city: <input type="text" id="city'+counter+'" /><br/>'); 
counter++;

然后我这样做一个数组

var array = [];
for(i=1; i<counter; i++){
array.push({'a':$('#street' + i).val(),'b':$('#city' + i).val()});          
}   
console.log(array);
$.ajax({
  type: "POST",
  url: "dummy.php",
  data: array,
  success: function(response, textStatus, xhr) {
  },
  error: function(xhr, textStatus, errorThrown) {
  }
});

但问题是当我试图通过ajax im获取发送数组到PHP脚本 参数 undefined undefined undefined undefined

在萤火虫的后期部分

我在这里做错了什么?

firebug控制台与console.log(数组)firebug output

类似

此致

好像我找到了解决方案 我发送的数据如     data:{地址:数组}, 它的工作原理

1 个答案:

答案 0 :(得分:2)

您可以像这样发送表单(不要作为数组发送):

$.ajax({
  ...
  data: form.serialize()
  ...
});

并将其转换为服务器代码中的数组。

或者,或者,你可以用自动成为服务器上两个数组的方式命名输入:

form.append('Street: <input type="text" name="street[]" /> city: <input type="text" name="city[]" /><br/>'); 
$.ajax({
  ...
  data: form.serialize()
  ...
});

您的PHP脚本会将$_POST['street']$_POST['city']作为数组接收。 希望这可以帮助。干杯