我开发了一个购物网站,在那里我使用ajax处理添加到购物车和从购物车中删除。添加到购物车工作正常,但从购物车中删除会产生一个奇怪的问题。我只能从中删除一条记录,如果我想删除更多,我需要手动刷新页面,然后我只能再删除一条。这太奇怪了,我找不到错误在哪里。
这是代码:
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循环中,每个时间名称属性由数据库cart表的唯一ID组成。
这是delcart.hp:
<?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}'");
?>
有人能告诉我我错过了什么,或者bug在哪里吗?这将是一个巨大的帮助。提前谢谢。
不确定我是否有适合你的解决方案,但我想值得一试。我的猜测是,带有类remove的按钮位于div中id为container的某个位置,对吗?
如果是这样,那么当您调用替换#containerdiv.内容的.load函数时,就会"丢失".click处理程序
解决办法是把点击监听器改成之类的东西
$('#some-div-container-that-stays').on("click", ".remove", function(data) {
或者至少试着在.click操作中放入console.log(),看看它是否触发