我开发了一个购物网站,我正在使用ajax处理添加到购物车并从购物车中删除。添加到购物车工作正常,但从购物车删除是一个奇怪的问题。我只能从中删除一条记录,如果我想删除更多,我需要手动刷新页面,然后我将只能删除一个。这太奇怪了,我无法找到bug的位置。
这是代码:
jQuery('.remove').click(function(data) {
var pi = jQuery(this).attr('name');
var y = jQuery(this).attr('name');
$.ajax({
url: "delcart.php?pid="+pi+"&data="+y,
type: 'GET',
success: function(s){
var $container = $("#content");
// $container.refresh("index.php");
$("#content").load(location.href + " #content");
$("#success2").show().fadeOut(6000);
},
error: function(e){
alert('Error Processing your Request!!');
}
});
});
HTML按钮。
<button name="<?php echo $ca['ID'];?>" class="remove close_product color_dark tr_hover">x</button>
此按钮进入while循环,每个时间名称属性包含数据库购物车表的唯一ID。
这是delcart.php:
<?php
include_once "config.php";
$id = $_GET['pid'];
$ip = $_SERVER['REMOTE_ADDR'];
$de = mysqli_query($con,"DELETE from cart where ID='{$id}' and ip='{$ip}'");
?>
任何人都可以想象我错过了什么或错误在哪里。这将是一个巨大的帮助。提前谢谢。
答案 0 :(得分:1)
不确定我是否有适合您的解决方案,但我想这值得一试。 我的猜测是你的带删除类的按钮位于div的某个地方,id为容器,对吗?
如果是这样,那么当你调用替换#container div内容的.load函数时,你会“丢失”.click处理程序。
解决方案将(可能)将.click侦听器更改为......
$('#some-div-container-that-stays').on("click", ".remove", function(data) {
或者至少尝试将console.log()放入.click动作以查看是否触发