【发布时间】:2018-12-09 22:58:33
【问题描述】:
我正在为 wordpress 创建一个自定义的 woocommerce 集成主题。
我在顶部有一个显示购物车中商品总数的 blob,我想使用 Jquery 更新此 blob(无需重新加载页面)我能够通过获取当前的商品来增加商品数量blob 中的数字并为每次点击增加 +1,问题是添加到购物车有一个选项可以选择要添加到购物车的商品数量。因此,如果我选择 3 个项目并单击按钮,则 blob 只会增加一个。
我可以创建一种方法来获取从前端添加的项目数量,但我认为这是不必要的。我希望能够使用 jquery 从 PHP 会话中获取总数,以便每次单击添加项目或删除项目时,我都会从服务器动态获取当前数字。
到目前为止,我所做的是创建一个 reloadCart.php 文件来回显购物车总数,这是代码
<?php
require('../../../wp-blog-header.php');
global $woocommerce;
echo $woocommerce->cart->get_cart_contents_count();
?>
当我访问此页面时,它会回显当前项目总数,但我无法从 jquery 获取此数据,自从我上次使用 AJAX 以来已经有一段时间了,我也很长时间没有从事网络项目,但我请记住,我所做的 AJAX 调用是正确的。
我尝试过使用 jquery 的 get() 和 post() 函数以及普通的 ajax() 函数,但似乎没有任何效果。有人可以帮忙吗?
$(".ajax_add_to_cart").click(function () {
/*$("#bag-total").html(function () {
var bagTotal = parseInt($(this).html());
return ++bagTotal;
});*/
alert('clicked');
$.get("<?php echo get_template_directory_uri(); ?>/reloadCart.php", function(data){
alert("Data: " + data);
});
});
注释的行是我之前使用的行,通过从前端获取当前购物车编号来添加购物车总数。
任何帮助将不胜感激。提前致谢!
【问题讨论】:
-
我有点不清楚,您是否尝试在使用 PHP 收集该值后从 JQuery 中获取该值? echo $woocommerce->cart->get_cart_contents_count(); 还是 reloadCart.php 应该为您提供所需的更新数据? - 第一个代码块的简单解决方案是不直接回显该值,PHP 在加载动态数据时会更改页面,在您的第一个 sn-p 中,您实际上是在回显一行文本;要在 JQuery 中获取它,您只需将文本分配到可选择的
标记
-
您确定 "/reloadCart.php" 是您的 php 文件的正确路径并且您的 php 文件没有遇到任何错误吗?您当前收到的警报是什么?
-
非常确定。当我访问 reloadCart.php 时呈现页面后,它会打印出购物车中当前的商品数量。
标签: php jquery ajax wordpress woocommerce