在这里,我想通过jQuery Function.here'添加购物车'按钮将product_id值传递给addcart.php文件 . 每个按钮设置为一个invidual产品ID,这是很好的直到这..我的问题是什么是所有按钮传递相同的值addcart.php文件,当我点击每一个...我想传递个人的值(按钮)..请给我一个解决方案... addcart.php只包含像“echo $ _POST ['pid'];仅”的代码
<?php
include('includes/db-config.php');
$shop_id=$_GET['sid'];
$get_product_q = mysql_query("select product from shops where sid = $shop_id");
$get_product_f = mysql_fetch_array($get_product_q);
$product_id = explode(',', $get_product_f['product']);
$count_product_id = count($product_id);
for($i=0;$i<$count_product_id;$i++){
$get_product_q = mysql_query("select * from products where pid = $i");
$get_product_f = mysql_fetch_array($get_product_q);
$product_id = $get_product_f['pid'];
?>
<script>
$(document).ready(function(){
$('.but').click(function(){
$.ajax({
type: 'POST',
url:"addcart.php",
data : { pid : '<?php echo $product_id?>'},
success:function(result){
$("#div1").html(result);
}});
});
});
</script>
<?php
$product_name = $get_product_f['name'];
$product_description = $get_product_f['description'];
$product_price = $get_product_f['price'];
echo $product_name;
echo '<br>';
echo $product_description;
echo '<br>';
echo $product_price;
echo '<br>';
echo '<input class="but" type="button" value="Add Cart" />';
echo '<br><br>';
}
?>
<div id="div1"></div>
4 回答
您正在为每个产品重复整个Javascript . 将Javascript移出循环并将产品ID设置为按钮上的
data-productid
属性:然后当您进行ajax调用(单击时),读取产品ID并将其设置为POST数据:
试试这个 :
替换:
echo '<input class="but" type="button" value="Add Cart" />';
由此:echo '<input class="but" type="button" rel="'.htmlspecialchars($product_id).'" value="Add Cart" />';
和你的脚本:
问题是你将它绑定到点击所有带有“.but”类的元素,如果你另一方面给了按钮一个id就像
然后在你的jquery函数中将执行以下操作(在循环外):
然后你就可以解决问题了,因为它会监听每个元素上的click事件,但每个元素的数据都是不同的 .
我希望这有帮助 .
在你循环中, . 但每次都绑定一个函数,所以最后一个绑定工作.try给.but元素一个唯一的id,如“id = $ product_id”;
你可以绑定一次函数(在循环之外) . 这就像:
$(文件) . 就绪(函数(){
$( '但') . 点击(函数(){
});
});
很幸运 .