Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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中更新数量_Javascript_Codeigniter_Cart - Fatal编程技术网

如何在javascript中更新数量

如何在javascript中更新数量,javascript,codeigniter,cart,Javascript,Codeigniter,Cart,我有这样的桌子 <?php $no=1; foreach($this->cart->contents() as $items): ?> <input type="hidden" value="<?php echo $items['rowid']?>" class="rowid" id="<?php echo $items['rowid']?>" name="rowid"/> <tr><td> <?

我有这样的桌子

<?php $no=1; 
  foreach($this->cart->contents() as $items): ?>
 <input type="hidden" value="<?php echo $items['rowid']?>" class="rowid" id="<?php echo $items['rowid']?>" name="rowid"/>
 <tr><td> <?php echo $no; 
          $data = array('id' => $items['id'], 'name' => 'id', 'value' => $items['id']);
          echo form_hidden($data); ?></td>
     <td><?php echo $items['name']?><?php $items['options']['exp']?></td>
     <td><input type="text" value="<?php echo $items['qty']?>" name="qty" id="<?php echo $items['id']?>" class="qty"/>
         <button class="update" id="<?php echo 'up'.$items['id']?>" style="margin-top:-10px"><i class=" icon-refresh"></i>update</button></td>
     <td><?php echo $this->cart->format_number($items['price']); ?></td>
  </tr>
我想买个xox。这是我的密码

$(".update").click(function(){
   var idbarang = $(".qty").attr('id');
   var qty = $(".qty").val();
   var row = (this.id);
   var rowid = row.substr(2);
但是当我更新它的时候,xxx总是会改变。我想是因为attr('id')。 如何更新xox

$(".update").click(function(){
    var qty = $("#121").val();
但是,id在整个HTML文档中应该是唯一的。当前,您的按钮和输入具有相同的id,这是无效的HTML。

HTML 为了更正html,我使用了
数据id
自定义属性。要了解有关自定义属性的更多信息,请查看自定义属性及其使用说明

<table>
    <tr><td>xxx</td>
    <td><input type="text" class="qty" data-id="123"/>
        <button class="update" id="123">update</button></td>
    <td class="display" data-id="123">500</td>
    <td>[subtotal]</td>
</tr>
<tr><td>xox</td>
    <td><input type="text" class="qty" data-id="121"/>
        <button class="update" id="121">update</button></td>
    <td class="display" data-id="121">505</td>
    <td>[subtotal]</td>
</tr>
</table>
如前所述,id必须是唯一的(更详细),但由于您似乎使用它们来标识产品id,而不是传统的DOM元素id,因此我试图保持这种精神

通过在行声明中使用
数据id
属性(即
),然后使用子选择器,您还可以更加语义化地构建内容,例如:

   $("tr[data-id='"+idbarang+"'] .display").html(qty);
使用
]
之间的空格

结论
你可以看到这里的一切都在一起。希望对您有所帮助。

在HTML中,id应该是唯一的整体HTML元素HTML属性id必须是唯一的才能成为有效的HTML。您还可以使用$(“.qty”)查询选择所有元素。调试您的变量,您应该能够看到您得到了一个数组。嗯,它对我不起作用。我有console.log(qty)和idbarang,但结果是undefinedit在链接的fiddle中工作。我不知道怎样才能帮得上忙。
$(".update").click(function(e){
   var t = e.target;
   var idbarang = $(t).attr('id');
   var qty = $("[data-id='"+idbarang+"'].qty").val();
   $("[data-id='"+idbarang+"'].display").html(qty);
})
   $("tr[data-id='"+idbarang+"'] .display").html(qty);