Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在编写html输入1时更改第二个和第三个html输入_Javascript_Php_Html_Mysql - Fatal编程技术网

Javascript 在编写html输入1时更改第二个和第三个html输入

Javascript 在编写html输入1时更改第二个和第三个html输入,javascript,php,html,mysql,Javascript,Php,Html,Mysql,我在html+php表中显示数据库表的值,我的目标是更改文章数量或价格的输入,并自动将总值更改为正在编辑的行数,并使用该总值中输入的值更新其余行 我认为这可以用于javascript或其他任何东西,但我不知道js,我希望有人能帮助我 <tbody> <?php $sql=sprintf("SELECT * FROM rostosativos_invoiceprop WHERE id_proposta = '".$_GET['id']."'"); $res=mysqli_quer

我在html+php表中显示数据库表的值,我的目标是更改文章数量或价格的输入,并自动将总值更改为正在编辑的行数,并使用该总值中输入的值更新其余行

我认为这可以用于javascript或其他任何东西,但我不知道js,我希望有人能帮助我

<tbody>
<?php
$sql=sprintf("SELECT * FROM rostosativos_invoiceprop WHERE id_proposta = '".$_GET['id']."'");
$res=mysqli_query($link, $sql);
while ($r=mysqli_fetch_assoc($res)){ ?>
<tr>                                                                
   <td><input type="text" value="<?php echo $r['produto']; ?>" name="product"></td>         
   <td><input type="text" value="<?php echo $r['precouni']; ?>" name="priceunit"></td>                                                              
   <td><input type="text" value="<?php echo $r['quantidade']; ?>" name="quantity"></td>                                                              
   <td><input type="text" value="<?php echo $r['soma']; ?>" name="sum"></td>                                                                 
   <td><input type="text" value="<?php echo $r['totalsoma']; ?>" name="totalsum"></td>                                                                                                                           
   <td class="actions">
      <a href="maisproposta?id=<?php echo $r['id_proposta']; ?>" class="delete-row"><i class="fa fa-plus-square"></i></a>                                                
   </td>                                                        </tr>
<?php } ?>
</tbody>


在应用jquery或javascript之前,需要为每个输入放置.class/#id。在本例中为价格、数量、总和和总和。所以一行是这样的

<tr>                                                                
   <td><input type="text" value="1" name="product"></td>         
   <td><input type="text" class="price" value="5.00" name="priceunit"></td>                                                              
   <td><input type="text" class="qty" value="2" name="quantity"></td>                                                              
   <td><input type="text" class="sum" value="10.00" name="sum"></td>                                                                 
   <td><input type="text" class="totalSum" value="10.00" name="totalsum"></td>                                                                                                                           
   <td class="actions">
      <a href="maisproposta?id=1" class="delete-row"><i class="fa fa-plus-square"></i></a>                                                
   </td>

警告:您完全可以使用参数化的预处理语句,而不是手动生成查询。它们由或提供。永远不要相信任何类型的输入,尤其是来自客户端的输入。即使您的查询仅由受信任的用户执行,.@Dharman我应该更改什么?不要将变量/数据连接到SQL语句中。请阅读链接。@Dharman Hm好的,我现在正在更改我的查询,但有一件事我如何检查我的查询?例如(当我在db上插入值时,它失败了,我回显sprintf行,我可以看到缺少了什么,我如何在这个方法中做到这一点?)更好的是,我如何使用``if(mysqli_query($link,$sql))``作为警报?我应该把代码放在哪里?我已经把它放进去了,现在我只需要更新数据库中的每个值
$(document).on('keyup','.qty, .price',function(e){
        findTotal();
});

 function findTotal(){
    var totalSum = 0;
    var price,qty,sum;

  $rows = $('#productPriceList tbody tr');
    $.each($rows,function(key,row){
        price = Number($(row).find('.price').val());
        qty = Number($(row).find('.qty').val());

        sum =  price * qty;
    totalSum += sum;

    $(row).find('.sum').val(sum.toFixed(2)); 
        $(row).find('.totalSum').val(totalSum.toFixed(2)); 
    });
 }