Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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 JQuery-从html数组输入获取值_Javascript_Jquery - Fatal编程技术网

Javascript JQuery-从html数组输入获取值

Javascript JQuery-从html数组输入获取值,javascript,jquery,Javascript,Jquery,用户可以通过html输入添加尽可能多的项目。输入看起来像 <input class="form-control" name="part_number[]" number" type="text"> <input class="form-control" name="part_number[]" number" type="text"> <input class="form-control" name="part_number[]" number" type="

用户可以通过html输入添加尽可能多的项目。输入看起来像

 <input class="form-control" name="part_number[]" number" type="text">
 <input class="form-control" name="part_number[]" number" type="text">
 <input class="form-control" name="part_number[]" number" type="text">

 <input class="form-control item" name="description[]" type="text">
 <input class="form-control item" name="description[]" type="text">
 <input class="form-control item" name="description[]" type="text">

我想将这些项目添加到我的数据库中进行存储。。如何通过每个输入进行迭代?零件号和说明属于一行。

如果您的输入在表单中,则可以使用.serializeArray,然后使用.reduce创建一个对象,该对象存储多个输入类型的键和数组值,如下所示。然后,您可以将此数据提交到服务器,然后存储到数据库中:

常量数据=$myform.serializeArray.ReduceAc,o=>{ 如果o.name.slice-2==[]{ acc[o.name]=acc[o.name]| |[]; acc[o.name].pusho.value; }否则{ acc[o.name]=o.value; } 返回acc; }, {}; console.logdata;//要发布的数据 函数getdata{ var partNumbers=[]; var描述=[]; $'[名称=零件号[]]'。每个函数{ partnumber.pushthis.value; } $'[name=description[]]'。每个函数{ descriptions.pushthis.value; } 风险值数据={ 零件号:零件号, 描述:描述 } $'output'.valJSON.stringifydata } 获取数据
从您的问题中,我了解到您希望将说明和零件号排成一行。 请使用jQuery的函数查找我的答案。 .each函数遍历所有指定的元素,并返回每个元素的索引位置。在这里,我迭代了零件号,所以我想得到相应的描述,即零件号索引位置的描述。要实现这一点,我需要使用另一个jQuery选择器。它将选择匹配集中索引n处的元素。 $.submit.onclick,函数{ 让用户输入=[]; $input[name='part_number[]']。每个函数索引{ 用户输入.push{ 零件号:$this.val, 描述:$`。项:eq${index}`.val }; }; console.logfinal result=,用户输入; };
Save我宁愿修改HTML,也不愿事后修改数据

您有值description和part_number的项,为了对数据进行分组,我首先在HTML中对它们进行可视化分组,在每个part_number+description对周围添加一个包装器:

要在表单中添加多个项目元素,您需要在将每个项目添加到表单时为其添加ID:

<div class="item">
    <input type="text" name="item[0][part_number]" />
    <input type="text" name="item[0][decription]" />
</div>
<div class="item">
    <input type="text" name="item[1][part_number]" />
    <input type="text" name="item[1][decription]" />
</div>
<div class="item">
    <input type="text" name="item[part_number]" />
    <input type="text" name="item[decription]" />
</div>
<div class="item">
    <input type="text" name="item[0][part_number]" />
    <input type="text" name="item[0][decription]" />
</div>
<div class="item">
    <input type="text" name="item[1][part_number]" />
    <input type="text" name="item[1][decription]" />
</div>
foreach( $_POST['item'] as $item) {
    $item['part_number'];
    $item['description];
}