【问题标题】:problem to recover the value of an input [javascript, php] [closed]恢复输入值的问题[javascript,php] [关闭]
【发布时间】:2020-02-14 09:23:25
【问题描述】:

员工的产品不得超过 100 欧元,所以我想让他写下他想要的产品数量,按下按钮,会出现一个对话框,显示订单的总价。 我设法在对话框中显示每种产品的商品价格,并将每种选择的产品的价格加在一起。

但是,我无法恢复输入的值,即员工选择的数量。

    $lenum = 0;
      foreach ($lesProduits as $leProduit){
        ?>
        <img src="<?php echo $leProduit['image'];?>">
        <br><input type="checkbox" id="<?php echo $leProduit['nproduit']?>" name="nproduits[]" value="<?php echo $leProduit['nproduit']?>">
        <?php echo $leProduit['nproduit']; ?> - <?php echo $leProduit['designation']; ?><br>
        Boitage : <?php echo $leProduit['boitage'];?><br>
        Prix Unitaire : <?php echo $leProduit['prix']; ?>€<br>
        Quantité : <?php echo $leProduit['qtestock'];  ?> <br>
        Quantité souhaité :  <input type="text" name="txtqte[]" id="<?php echo $lenum;?>"  size="3"/><br>
        <input type="button" value="Enregistrer" onclick="leprix(lep = <?php echo $leProduit['prix'];?>,<?php echo $lenum;?>)">
        <br>
        <hr><br>
        <?php
        $lenum ++;
      }
      ?> 

和脚本

function leprix(lep,inputId){
    var lavaleur = document.getElementById(inputId).value;
    alert("la prix du produit est de : " + lep);
    alert("la quantité demandé est de : " + lavaleur);
}

对于第一个产品,当 $lenum = 0 时它可以工作,但随后它显示 $lenum 而不是输入的值

【问题讨论】:

  • &lt;input type="text" name="txtqte[]" name="&lt;?php echo $lenum;?&gt;" size="3"/&gt; 你应该提供一个id
  • 在 PHP 循环的每次迭代中,您都会输出 function leprix。只有该函数的最后一次迭代才会真正“存活”并覆盖所有以前的迭代。所以onclick="leprix()" 不会调用特定的function leprix“那个迭代”,而是最后一个。
  • 试试这个:&lt;input type="text" name="txtqte[]" name="&lt;?php echo $lenum;?&gt;" size="3" id="&lt;?php echo $lenum;?&gt;"&gt;

标签: javascript php input


【解决方案1】:

这应该可行:

   <input type="text" name="txtqte[]" name="<?php echo $lenum;?>" id="<?php echo $lenum;?>"  size="3"/>
   <input type="button" value="Enregistrer" onclick="leprix('<?php echo $lenum;?>')">
   <script>
       function leprix(inputId){
            var input = document.getElementById(inputId).value;
            alert(input);
       }
   </script>

【讨论】:

  • 然后将 &lt;script&gt;...&lt;/script&gt; 从 PHP 循环中移除……
  • 这个名称我无法更改,它为我提供了下一页,即购物车。另一方面,这种方法适用于产品 1 它适用,但对于其他产品,它向我显示 $lenum 而不是输入的值
  • @ZinebMouazzaz 我并不是说要更改名称,只需添加 id 属性并将该 id 用作 JavaScript 函数中的参数。
  • @deceze 我把脚本从循环中取出,我把它放在一个单独的文件中,当我这样做时,我只能显示第一个产品 $lenum = 0 否则它会显示变量和不是我不明白的输入的结果。
猜你喜欢
  • 1970-01-01
  • 2013-11-05
  • 2021-01-18
  • 2013-06-26
  • 2015-10-19
  • 2017-02-26
  • 2011-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多