如何使用javascript将值插入到输入数组中

时间:2017-03-11 11:37:33

标签: javascript php jquery html arrays

我正在使用数组生成一行输入。

@foreach($msp_temp as $current)
 <td>
 <input type="number" step ="0.01" class="required" name="firstEntry[]" id="firstEntry">
 </td>
 <td>
 <input type="number" step ="0.01" class="required" name="secondEntry[]" id="secondEntry">
 </td>
 ...

我有一个变量集,如:

var entrysum = 0

我想在[]中插入变量值(entrysum)并在每个循环中增加变量。

如何将entrysum值插入firstEntry [],secondEntry [],并在每次循环后将变量值增加1?

4 个答案:

答案 0 :(得分:0)

我将假设根据代码,总有几个firstEntry和secondEntry,我知道你想要用相同的值一起更新它们。

首先,您将获得名称以firstEntry开头的所有输入数字,以及另一个用于secondEntry的输入数字:

var firstEntries = document.querySelectorAll('[name^="firstEntry"]');
var secondEntries = document.querySelectorAll('[name^="secondEntry"]'); 

其次,迭代所有元素并自动增加值。

for (var i = 0; i < firstEntries.length; i++) {
  firstEntries[i].value = entrysum; // update firstEntry
  secondEntries[i].value = entrysum; // update secondEntry
  entrysum++; // increment entrysum
}

注意:如果entrysum始终以0开始并以1递增,则可以简单地使用循环中的i。

我希望这会有所帮助。

答案 1 :(得分:0)

试试这个

@foreach($msp_temp as $current)
 <td>
 <input type="number" step ="0.01" class="required" name="firstEntry[]" id="firstEntry">
 </td>
 <td>
 <input type="number" step ="0.01" class="required" name="secondEntry[]" id="secondEntry">
 </td>
@php
$entrysum++;
@endphp 

答案 2 :(得分:0)

Javascript是一种客户端编程/脚本语言。看起来你正在粘贴PHP中的元素,而entrysum是一个Javascript变量。

PHP是一种服务器端编程语言。您不能在PHP之前或与PHP同时运行Javascript。

您可以使用for循环代替foreach来完成任务,并按索引访问元素。

如果您有此设置:

$msp_temp = [];
$i = 0;
for($i = 0; $i < count($msp_temp); $i++){
    echo "<input type='number' step ='0.01' class='required' name='secondEntry[$i]' id='secondEntry'>";
    // ...
}
echo "<script>var entrysum = $i;</script>"

该数字将自动增加,该变量将可用于Javascript。

答案 3 :(得分:0)

你有点混淆[]数组括号会自动增加下一个键,所以

无需额外努力制作数组键

相反,您需要使输入文本ID唯一,以使唯一ID只需添加$key

@foreach($msp_temp as $key=>$current)
  <td>
   <input type="number" step ="0.01" class="required" name="firstEntry[]" id="firstEntry{{$key}}">
  </td>

只需提交表单并查看发布请求即可获得firstEntrysecondEntry

的数组