【问题标题】:How to insert value into an array of input using javascript如何使用javascript将值插入到输入数组中
【发布时间】:2017-03-11 11:37:33
【问题描述】:

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

@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),每次循环增加变量。

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

【问题讨论】:

  • 在每次迭代中,您都在使用相同的 id 输入文本
  • entysum 是 javascript 变量或 php 变量 >
  • $current 在这里做什么@foreach($msp_temp as $current) ?

标签: javascript php jquery html arrays


【解决方案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 来代替。

我希望这会有所帮助。

【讨论】:

    【解决方案2】:

    试试这个

    @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 
    

    【讨论】:

    • inputext id 将在每次迭代中生成相同
    【解决方案3】:

    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。

    【讨论】:

      【解决方案4】:

      你对[]数组括号是自动增加下一个键有些困惑,所以

      无需费力制作数组键

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

      【讨论】:

        猜你喜欢
        • 2020-03-26
        • 2020-08-13
        • 1970-01-01
        • 2013-07-11
        • 1970-01-01
        • 2019-06-29
        • 1970-01-01
        • 2021-03-25
        • 1970-01-01
        相关资源
        最近更新 更多