繁体   English   中英

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

[英]How to insert value into an array of input using javascript

我正在生成带有数组的输入行。

@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?

我将假定按照代码,总是有几个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。

我希望这有帮助。

尝试这个

@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 

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

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。

您有些困惑, []括号会自动增加下一个键,所以

无需付出额外的努力来制作数组键

而是需要使输入文本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数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM