我有一些PHP购物车的代码,如下所示
if($cart->itemcount > 0) {
foreach($cart->get_contents() as $item) {
echo "Code/ID :".$item['id']."<br/>";
echo 'Quantity:<form method="post" action="cart.php"><input type="hidden" name="qtyid" id="qtyid" value="'.$item['id'].'"/><input type="submit" name="minus" id="minus" value="-"/>'.$item['qty'].'<input type="submit" name="plus" id="plus" value="+"/><br/></form>';
echo "Price :$".number_format($item['price'],2)."<br/>";
echo "Info :".$item['infos']."<br />";
echo "Shipping :".$item['shipping']."<br />";
echo "Subtotal :$".number_format($item['subtotal'],2)."<br />";
echo '<form method="post" action="cart.php"><input type="hidden" name="removeid" id="removeid" value="'.$item['id'].'"/><input type="submit" name="remove" id="remove" value="Remove"/></form>';
}
echo "---------------------<br>";
echo "total: $".number_format($cart->total,2);
} else {
echo "No items in cart";
}
我一直在使用jQuery Ajax将数据发布到我的php脚本中,当我有一个项目时一切正常:
/********************************/
/* Plus Item */
/********************************/
$('#plus').click(function()
{
var qtyid = $(this).val();
var plus = 'plus';
$.ajax({
url: 'cart.php',
type: 'post',
data: 'qtyid=' + qtyid + '&plus=' + plus,
sucess: function (result) {
console.log('it worked');
}
})
return false;
})
/********************************/
/* Minus Item */
/********************************/
$('#minus').click(function()
{
var qtyid = $(this)).val();
var minus = 'minus';
$.ajax({
url: 'cart.php',
type: 'post',
data: 'qtyid=' + qtyid + '&minus=' + minus,
sucess: function (result) {
console.log('it worked');
}
})
return false;
})
但是,当购物车中有多个产品时,我遇到了麻烦,我想,我的代码不允许jQuery ajax找到它应该从哪里获取id,因为生成的HTML确实包含了相同的ID。
</div>
<form method="post" action="cart.php">
<input type="hidden" name="imgid" id="imgid" value="YWNoZZeXk2htZmJjaWds">
<input type="hidden" name="imgalb" id="imgalb" value="YWNoZZeVnGdtZmJjamlj">
<input type="hidden" name="qty" id="qty" value="1">
<input type="submit" value="Add to cart" name="addtocart" id="addtocart">
</form>Code/ID :126264027457298<br/>
Quantity:
<form method="post" action="cart.php">
<input type="hidden" name="qtyid" id="qtyid" value="126264027457298"/>
<input type="submit" name="minus" id="minus" value="-"/>
9
<input type="submit" name="plus" id="plus" value="+"/>
<br/>
</form>
Price :$55.85
<br/>
Info :
Titre<br />
Shipping :6.00<br />
Subtotal :$556.65<br />
<form method="post" action="cart.php">
<input type="hidden" name="removeid" id="removeid" value="126264027457298"/>
<input type="submit" name="remove" id="remove" value="Remove"/>
</form>Code/ID :126265084123859<br/>
Quantity:
<form method="post" action="cart.php">
<input type="hidden" name="qtyid" id="qtyid" value="126265084123859"/>
<input type="submit" name="minus" id="minus" value="-"/>
2
<input type="submit" name="plus" id="plus" value="+"/>
<br/>
</form>
Price :$25.85
<br/>
Info :Boucles d'oreilles courtes «Conic»<br />
Shipping :6.00<br />
Subtotal :$63.70<br />
<form method="post" action="cart.php">
<input type="hidden" name="removeid" id="removeid" value="126265084123859"/>
<input type="submit" name="remove" id="remove" value="Remove"/>
</form>
---------------------<br>total: $620.35
</div>
我花了好几个小时试图找到解决方案。但我觉得是时候寻求帮助了。 我该怎么办?我应该如何更改HTML以生成唯一ID并找到从jQuery和PHP获取ID的方法?
答案 0 :(得分:0)
您似乎只需要获得与您点击的加号/减号按钮相关联的qtyid
值。如果是这种情况,您应该能够使用以下行获取它:
var qtyid = $('#qtyid', $(this).parent('form')).val();
所以你的一个点击事件的例子是:
$('#plus').click(function()
{
var qtyid = $('#qtyid', $(this).parent('form')).val();
var plus = 'plus';
$.ajax({
url: 'cart.php',
type: 'post',
data: 'qtyid=' + qtyid + '&plus=' + plus,
success: function (result) {
console.log('it worked');
}
});
return false;
});