Javascript 使用jquery ajax更改产品数量

Javascript 使用jquery ajax更改产品数量,javascript,jquery,ajax,Javascript,Jquery,Ajax,我有一个购物车和一个显示表中所有产品的页面。我可以删除产品,但我想能够改变他们的数量以及 我的表格由一个输入字段组成,您可以在其中更改数量。单击下面的“更新”购物车按钮时,我会将产品名称和数量发送到我的PHP脚本。问题是,它总是发布第一个产品 可能是因为所有的类都有相同的类名,我如何修复它 这就是我的桌子的样子: <div class="col-md-8"> <div class="kl-title-block clearfix text-left tbk-symbol-

我有一个购物车和一个显示表中所有产品的页面。我可以删除产品,但我想能够改变他们的数量以及

我的表格由一个输入字段组成,您可以在其中更改数量。单击下面的“更新”购物车按钮时,我会将产品名称和数量发送到我的PHP脚本。问题是,它总是发布第一个产品

可能是因为所有的类都有相同的类名,我如何修复它

这就是我的桌子的样子:

<div class="col-md-8">
   <div class="kl-title-block clearfix text-left tbk-symbol--line  tbk-icon-pos--after-title">
      <h2 class="tbk__title montserrat fs-34 fw-semibold black winkelmandtitle">Uw Winkelmand</h2>
      <span class="tbk__symbol ">
      <span></span>
      </span>
      <h4 class="tbk__subtitle fs-22 fw-thin">Bent u niets vergeten?</h4>
   </div>
   <div class="table-responsive">
      <table class="table carttable">
         <thead>
            <tr>
               <th>Verwijder</th>
               <th>Afbeelding</th>
               <th>Product</th>
               <th>Prijs</th>
               <th>Aantal</th>
               <th>Totaal</th>
            </tr>
         </thead>
         <tbody>
            <tr>
               <td><a href="#" class="remove" id="Bad 13" title="Verwijder dit product">×</a></td>
               <td>
                  <a href="baden/bad-13" class="product-title">
                  <img class="attachment-shop_thumbnail" src="images/defaultimage.jpg" alt="Bad 13" title="Bad 13">
                  </a>
               </td>
               <td>
                  <a href="baden/bad-13" class="product-title">
                  Bad 13
                  </a>
               </td>
               <td>€ 1500</td>
               <td>
                  <div class="quantity">
                     <input type="number" step="1" min="0" name="quantity" id="Bad 13" value="1" title="Qty" class="input-text qty quantityclass text" size="4">
                  </div>
               </td>
               <td>€ 1500</td>
            </tr>
         </tbody>
         <tbody>
            <tr>
               <td><a href="#" class="remove" id="Bad 14" title="Verwijder dit product">×</a></td>
               <td>
                  <a href="baden/bad-14" class="product-title">
                  <img class="attachment-shop_thumbnail" src="images/defaultimage.jpg" alt="Bad 14" title="Bad 14">
                  </a>
               </td>
               <td>
                  <a href="baden/bad-14" class="product-title">
                  Bad 14
                  </a>
               </td>
               <td>€ 800</td>
               <td>
                  <div class="quantity">
                     <input type="number" step="1" min="0" name="quantity" id="Bad 14" value="1" title="Qty" class="input-text qty quantityclass text" size="4">
                  </div>
               </td>
               <td>€ 800</td>
            </tr>
         </tbody>
         <tbody>
            <tr>
               <td><a href="#" class="remove" id="Bad 1" title="Verwijder dit product">×</a></td>
               <td>
                  <a href="baden/bad1" class="product-title">
                  <img class="attachment-shop_thumbnail" src="cms/images/bad.jpg" alt="Bad 1" title="Bad 1">
                  </a>
               </td>
               <td>
                  <a href="baden/bad1" class="product-title">
                  Bad 1
                  </a>
               </td>
               <td>€ 1000</td>
               <td>
                  <div class="quantity">
                     <input type="number" step="1" min="0" name="quantity" id="Bad 1" value="1" title="Qty" class="input-text qty quantityclass text" size="4">
                  </div>
               </td>
               <td>€ 1000</td>
            </tr>
         </tbody>
      </table>
      <input type="submit" class="button updatebutton" name="update_cart" value="Wijzig winkelmand">
   </div>
</div>
问题是,当我在网络中查看时,无论我点击了什么产品,都会发布这些内容:

edit:Bad 13
aantal:1
我怎样才能解决这个问题

我可以将所有数量发布到我的php脚本吗?最好的解决方案是什么

问题在于:

var $edit = tpj('.quantityclass').attr('id'),
当您使用类选择器获取值时,它总是返回第一个元素值。改用

请参见此示例:

$(文档).ready(函数(){
$('.list')。单击(函数(){
log($('.list').html());
});
$('.listing')。单击(函数(){
log($(this.html());
});
});


第一个列表(它总是返回第一个元素值)

  • 一个
  • 两个 三个 另一个列表(它总是返回单击的元素值)

  • 一个
  • 两个
  • 三个问题是:

    var $edit = tpj('.quantityclass').attr('id'),
    
    当您使用类选择器获取值时,它总是返回第一个元素值。改用

    请参见此示例:

    $(文档).ready(函数(){
    $('.list')。单击(函数(){
    log($('.list').html());
    });
    $('.listing')。单击(函数(){
    log($(this.html());
    });
    });
    
    
    
    第一个列表(它总是返回第一个元素值)
    

  • 一个
  • 两个
  • 三个 另一个列表(它总是返回单击的元素值)

  • 一个
  • 两个
  • 三个
  • 您遇到了问题,因为您只抓住了第一个选择器。您还将您的API设计为,当您希望发送整个更新集时,只发送一个更新

    如果您想更新整个购物车的数量,下面是一个方法

    $('.updatebutton').on('click', function(event) {
        var elements = $('.quantity input[name="quantity"]'),
            url = 'includes/cartoverzicht.php',
            postBody = [];
        for (var i=0; i<elements.length; i++) {
            var element = $(elements[i]);
            postBody.push({
                edit: element.attr('id'),
                aantal: element.val()
            })
        }
        var posting = $.post( url, JSON.stringify(postBody) );
        posting.done(function( data ) {
            var content = $( data );
            $( "#cartresult" ).empty().append( content );
        });
    });
    
    $('.updatebutton')。在('click',函数(事件){
    变量元素=$('.quantity输入[name=“quantity”]'),
    url='includes/cartoverzicht.php',
    后体=[];
    
    对于(var i=0;i而言,您遇到了问题,因为您只获取了第一个选择器。您还将API设计为在您希望发送整个更新集时只发送一个更新

    如果您想更新整个购物车的数量,下面是一个方法

    $('.updatebutton').on('click', function(event) {
        var elements = $('.quantity input[name="quantity"]'),
            url = 'includes/cartoverzicht.php',
            postBody = [];
        for (var i=0; i<elements.length; i++) {
            var element = $(elements[i]);
            postBody.push({
                edit: element.attr('id'),
                aantal: element.val()
            })
        }
        var posting = $.post( url, JSON.stringify(postBody) );
        posting.done(function( data ) {
            var content = $( data );
            $( "#cartresult" ).empty().append( content );
        });
    });
    
    $('.updatebutton')。在('click',函数(事件){
    变量元素=$('.quantity输入[name=“quantity”]'),
    url='includes/cartoverzicht.php',
    后体=[];
    
    对于(var i=0;我谢谢你,但我没有点击多个按钮,只有一个按钮,来更新整个购物车。那么什么是最好的解决方案呢?也许可以发布所有数量和id,这样我就可以更新会话了?那么这是怎么回事:
    ,这里的
    数量类
    会重复多次谢谢你,但我没有点击多次按钮,只有一个按钮,用于更新整个购物车。那么,最好的解决方案是什么?可能会发布所有数量和id,这样我就可以更新会话了?关于这个:
    ,这里的
    quantityclass
    会重复多次尝试循环购物车中的每个元素?尝试循环购物车中的每个元素?是的,谢谢,这就是我需要的!下一步是解码json,将其放入php数组并与我现有的会话数组合并,我想我可以做到。谢谢!是的,谢谢,这就是我需要的!下一步是解码json,将其放入php数组并与我现有的会话数组合并,我想我可以做到。谢谢!