Javascript 使用jquery ajax更改产品数量
我有一个购物车和一个显示表中所有产品的页面。我可以删除产品,但我想能够改变他们的数量以及 我的表格由一个输入字段组成,您可以在其中更改数量。单击下面的“更新”购物车按钮时,我会将产品名称和数量发送到我的PHP脚本。问题是,它总是发布第一个产品 可能是因为所有的类都有相同的类名,我如何修复它 这就是我的桌子的样子: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-
<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数组并与我现有的会话数组合并,我想我可以做到。谢谢!