在页面加载后发出两个ajax请求但只发生一次

时间:2011-05-25 15:59:49

标签: php jquery get

我有两个需要做的ajax请求会返回两个数据元素,我只想在页面加载时抓取它们一次

我正在考虑这种方法,但我想知道是否有更好的

    $(document).ready(function(){
        $.get("/shop_possystems/index.php?route=module/cart/get_subtotal",
           function(data) {
         });

        $.get("/shop_possystems/index.php?route=module/cart/get_tax",
           function(data) {
         });
});

问题是如何将这些数据传送到我的php页面,所以我想的另一件事就是沿着这些方向

        <script type="text/javascript">
            $.get("/shop_possystems/index.php?route=module/cart/get_subtotal",
               function(data) {
                <?php $subtotal = data; ?>
             });

            $.get("/shop_possystems/index.php?route=module/cart/get_tax",
               function(data) {
                    <?php $tax = data; ?>
             });
        </script>

正如你所看到的,我正在尝试在php页面中添加一个脚本标记,并试图在这里设置值....两种方式看起来都有点hacky,更不用说第二种方法可能甚至没有正确的语法。 ......任何建议

2 个答案:

答案 0 :(得分:1)

  

如何将这些数据传送到我的php页面,这是另一回事

您对index.php的请求会返回数据。因此index.php已经包含了页面中的数据。只需让该页面处理数据所需的内容。

将数据从js发送到PHP的唯一方法是$.post请求。

这样做可以解除两个获取请求。

$(function() {
  $.get(..);
  $.get(..);
});

您还可以让PHP在您执行初始页面加载请求时获取该信息,并将数据直接注入HTML。

答案 1 :(得分:1)

您的第一种方法是在页面加载时发出请求。

加载页面后,您无法在页面上使用PHP执行任何操作。 PHP是一种服务器端脚本语言,就浏览器而言,它只是纯文本。如果您需要使用服务器上的调用结果,那么您需要将其POST回服务器或获取呈现当前页面的PHP脚本中的内容(而不是使用ajax)。