来自PHP文件中的jQuery的GET参数没有带来?

时间:2017-11-21 21:15:21

标签: php jquery ajax

我在ajax请求中有一些数据,我将其作为端点发送到php文件。

代码如下:

// some calculations above here, but to keep things minimal assume they produce the following
totalBeforeTip = 38.43;
tipTotal = 5.77;
totalWithTip = 44.48;
saleCount = "3";
  console.log("List for the query String: " + totalBeforeTip 
                                        + "\n Tips: " + tipTotal 
                                        + " \n Totals+Tip: "+ totalWithTip
                                        + "\n Totals Sales: " + saleCount);

  // Send get to php with q-string

  $.ajax({
    url:"summary.php",
    type: "get",
    data:{
      TotalSales: saleCount, 
      TotalsNoTip:totalBeforeTip, 
      TotalTip: tipTotal, 
      TotalWithTip: totalWithTip
    },
    success: function(resp){
      console.log(resp);
      window.location.href = "summary.php";
    },
    error: function(err){
      console.log(err);
    }
  });

我的php如下:

<main>
    <?php
    $TotalSales = $_GET["TotalSales"];
    $TotalTips =  $_GET["TotalTip"];
    $TotalBeforeTip = $_GET["TotalsNoTip"];
    $TotalWithTip = $_GET["TotalWithTip"];
    ?>
 <div class='container'>
        <div class='row'>
            <div class='col-md-6'>
                  <form> <!--Main form for user interaction-->
                    <div class='form-group bigger-group'>
                      <label>Sales: </label>
                      <input readonly value="<?php echo $TotalSales  ?>" />
                    </div>
                      <div class='form-group'>
                          <label>Totals Before Tips:</label>
                      </div>
                      <div class='form-group'>
                          <label>Total Tip Cost:</label>
                      </div>
                      <div class='form-group'>
                          <label>Total Cost with Tip:</label>
                      </div>
                    </div>
                    <div class=col-md-6>
                    <h1>Cost ($)</h1>
                <div class='form-group'>
                    <input readonly value="<?php echo $TotalBeforeTip ?>"/>
                </div>
                <div class='form-group'>
                    <input readonly value="<?php echo $TotalTips ?>"/>
                </div>
                <div class='form-group'>
                    <input readonly value="<?php echo $TotalWithTip ?>"/>
                </div>
            </div>
        </div>

</main>

当我重定向时,我的字段为空,但在控制台日志中的响应中,它们已填满。我尝试将页面重定向到resp它没有做任何事情。通过向success: function(resp){....}添加以下行之后,我对它进行了大量工作。

window.location = "summary.php?TotalSales="+saleCount+"&TotalsNoTip="+totalBeforeTip+"&TotalTip="+tipTotal+"&TotalWithTip="+totalWithTip;

由于某些原因,这是有效的,并且php中的字段具有正确的数据,但我不知道如何?或者为什么我用.ajax方法传入的数据只是蒸发了?

我已经在这两天里苦苦挣扎并且它有效,但我根本不明白为什么。任何人都能解释一下吗?

2 个答案:

答案 0 :(得分:1)

因此,结合我收到的所有反馈以及更多谷歌搜索,我了解到AJAX适用于ACTION而不是CONTENT,而AJAX的核心目的是在不保持页面主流的情况下执行后台处理。一些很好的例子是:

  • 在Twitter上加载新推文
  • 如果您的收件箱中有新电子邮件,则发出通知
  • 验证模糊的表单字段

因为在我的情况下,我想将totalBeforeTip, tipTotal, totalWithTip, saleCount发送到我的summary.php,以根据该数据加载输入字段的内容。使用AJAX是一种糟糕的方法,因为这应该在同步过程中完成。

我使用以下代码在ajax

之外完成此操作

window.location = "summary.php?TotalSales="+saleCount+"&TotalsNoTip="+totalBeforeTip+"&TotalTip="+tipTotal+"&TotalWithTip="+totalWithTip;

我需要的只是queryString。

答案 1 :(得分:0)

window.location = "summary.php?TotalSales="+saleCount+"&TotalsNoTip="+totalBeforeTip+"&TotalTip="+tipTotal+"&TotalWithTip="+totalWithTip;

您需要这样做,因为Ajax在同一页面上获得响应,您将从该页面将响应发送到另一个页面,然后使用$ _GET [&#39;变量&#39;]获得响应。