【问题标题】:Refreshing a echoed PHP variable after jQuery AJAX success?jQuery AJAX 成功后刷新回显的 PHP 变量?
【发布时间】:2010-05-08 11:51:46
【问题描述】:

我在 Codeigniter 中有一个购物车,使用 (jQuery) Ajax 将产品添加到购物车中。在每个页面的标题中,它使用

显示购物车中的内容数量
<?php echo $this->cart->total_items(); ?>

如何在将产品添加到购物车时更新/刷新此变量,因为我正在使用 AJAX 将产品添加到购物车,因此在添加产品时不会重新加载页面。如果我必须重新加载页面以从服务器获取新的总项目数,那么使用 AJAX 执行异步操作似乎毫无意义。

非常感谢。

【问题讨论】:

    标签: php ajax codeigniter


    【解决方案1】:

    您应该能够通过使包含购物卡项目计数的元素轻松地被 JavaScript 寻址来做到这一点,所以:

    <span id="total_items"><?php echo $this->cart->total_items(); ?></span>
    

    然后,作为您执行的 AJAX 函数的一部分,让响应包含总项目的修改值,然后让您的函数用该值替换此范围的内容。

    【讨论】:

    • 感谢卢卡诺斯,请参阅上面我对 PiotrLegnica 的回复。我会这样做的。
    • 乐于助人。 (我的想法与您和 Piotr 的思路相同,这让我感到有些欣慰。)
    【解决方案2】:

    据我了解,您需要一些东西来动态更新您的文章数量?

    您可以使用jQuery PeriodicalUpdater“每隔一段时间”更新该数字(将其指向仅返回当前数字的脚本,ofc)。

    【讨论】:

      【解决方案3】:

      在这种情况下不要考虑 PHP — 它完全无关紧要。您需要做的是修改该元素客户端的内容。所以如果你有:

      <div id="total_items"><?php /* ... */ ?></div>
      

      然后在您的 AJAX 成功处理程序中,您应该执行以下操作:

      $('#total_items').html('new item count');
      

      【讨论】:

      • 啊,我明白了,我是按照这些思路思考的,我只是不确定这是否是正确的程序。我实际上让它工作,但我错误地认为正确的方法是显示更新的变量。感谢您的快速回复!
      【解决方案4】:

      首先,当您进行 jQuery 调用时,您可以根据需要更新页面的任意多个部分。调用返回的数据格式是什么?假设您要返回 JSON,那么 JSON 字符串应该包括总数。然后在 AJAX 调用的回调中,您可以简单地更新总数。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-26
        • 2016-10-09
        • 1970-01-01
        • 2011-07-06
        • 2017-02-27
        • 2021-04-22
        相关资源
        最近更新 更多