我正在使用数组生成一行输入。
@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?
答案 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>
只需提交表单并查看发布请求即可获得firstEntry
和secondEntry