Codeigniter 购物车使用 jQuery 删除单个元素
Posted
技术标签:
【中文标题】Codeigniter 购物车使用 jQuery 删除单个元素【英文标题】:Codeigniter cart remove a single element using jQuery 【发布时间】:2015-11-08 10:52:59 【问题描述】:我一直在尝试使用 jQuery 从我的购物车中删除一个元素,因此它不会加载页面,但我无法检测到我遗漏了什么。它删除了元素,但看起来 jQuery 有问题,所以它加载了页面。 这是代码快照-
查看-
<td class="remove">
<?php echo anchor('home/remove_cart/'.$item['rowid'],'X',$item['rowid']); ?>
</td>
控制器-
public function remove_cart($rowid)
$this->cart->update(array(
'rowid'=>$rowid,
'qty' => 0
));
redirect(base_url().'home/purchase_order');
js-
$("td.remove").live("click", function()
var rem = $('a.removecart').data();
alert(rem+"f");
$.get(link + "home/remove_cart", rowid : rem ,function(data)
$.get(link + "home/show_cart", function(home)
$("#cart_content").html(home);
);
);
return false;
);
谢谢。
【问题讨论】:
您能再解释一下吗?此外,您使用的是长期弃用的 jQuery 版本。使用 live() 和 bind() 替换为 on() api.jquery.com/on 其实我都试过了,但结果都是一样的很好,所以最后一部分是,从购物车中删除单个元素。所以所有正在发生的事情是它删除了项目,但它也加载了页面,所以 jQuery 在这里有些错误,但找不到:/ 哪里出错了?我所能看到的是,当您在请求服务器删除购物车项目后收到来自服务器的响应时,无论响应如何,您都会执行另一个请求以获取购物车的完整 html 代码。它在哪里失败?顺便说一句,您可以通过一个 ajax 请求完成所有操作。 失败意味着,我的目标进程没有被完成,使用jQuery我的目标是加载购物车而不刷新页面,但在这里它总是在发出请求时加载页面 【参考方案1】:您正在将点击事件分配给链接的父级。所以你必须首先取消点击链接时的默认行为。然后点击事件自然会冒泡到它的父级:td.remove。链接不会被跟踪,td 的点击处理程序会被执行。
$("td.remove a").live("click", function(e)
e.preventDefault();
);
$("td.remove").live("click", function()
var rem = $('a.removecart').data();
alert(rem+"f");
$.get(link + "home/remove_cart", rowid : rem ,function(data)
$.get(link + "home/show_cart", function(home)
$("#cart_content").html(home);
);
);
如果这不起作用,请提供更多信息,因为最后有一个 return false 我不知道它来自哪里。
【讨论】:
以上是关于Codeigniter 购物车使用 jQuery 删除单个元素的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter Say更新多个购物车项目时,isset或空的非法偏移类型
使用 codeigniter 和 jquery 进行 AJAX 分页
如何在 Codeigniter 中使用 JQuery 修复未定义的 url