Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何构造javascript数组_Javascript_Php_Jquery_Arrays - Fatal编程技术网

如何构造javascript数组

如何构造javascript数组,javascript,php,jquery,arrays,Javascript,Php,Jquery,Arrays,我有一个动态表单,你可以点击一个按钮,一个新的表单行被添加到表单中。表单条目如下所示: <input type='text' class='custom' data-index='".$f."' name='column_value_one' value='1'> <input type='text' class='custom' data-index='".$f."' name='column_value_two' value='2'> 我试图得出以下最终结果: da

我有一个动态表单,你可以点击一个按钮,一个新的表单行被添加到表单中。表单条目如下所示:

<input type='text' class='custom' data-index='".$f."' name='column_value_one' value='1'>
<input type='text' class='custom' data-index='".$f."' name='column_value_two' value='2'>
我试图得出以下最终结果:

data[0]['column_value_one'] = 1;
data[0]['column_value_two'] = 2;
data[1]['column_value_one'] = 1;
data[1]['column_value_two'] = 2;
我通常只编写PHP,因此我按照上面的方法来布置数组。但这将是一个Javascript/Jquery数组,而不是PHP


我将非常感谢您的帮助

如果索引不存在,则需要将
数据[index]
初始化为
{}

data[index] = data[index] || {}; 
比如:

var数据=[];
$(“.custom”).each(函数(){
var index=parseInt($(this.attr('data-index'));
数据[索引]=数据[索引]| |{};
数据[索引][$(this.attr(“name”)]=$(this.val();
});
控制台日志(数据)

听起来您需要一组对象:

data = [
    {column_value_one: 1, column_value_two: 2},
    // ...
];
在这种情况下,由于第二个输入紧跟第一个输入,您可以执行以下操作:

var data = $("input[name=column_value_one]").map(function() {
    return {column_value_one: this.value, column_value_two: $(this).next().val()};
}).get();
实例:

var data=$(“输入[name=column\u value\u one]”)。映射(函数(){
返回{column_value_one:this.value,column_value_two:$(this.next().val()};
}).get();
控制台日志(数据)


我应该提到,$f是由PHP循环生成的,每两个集合都会有一个新的数据索引ID。实际问题是什么?与从服务器输出每个元素的静态值相比,使用父元素的
map()
和实际
index()
可能是一个更好的解决方案。查找最后一个输入并在单击时添加最后一个输入的+1值它给我响应无法设置undefinedHappy的属性“column\u value\u one”来帮助:)谢谢TJ,找到了解决办法。感谢您的回复。@PatrickMcCarthy-刚刚添加了第二个。(除非您需要它来做其他事情,否则不需要
数据索引
var data = $("input[name=column_value_one]").map(function() {
    return {column_value_one: this.value, column_value_two: $(this).next().val()};
}).get();