Ajax正在发送数据,但Php文件没有收到它

时间:2016-12-31 19:32:09

标签: javascript php jquery ajax

我花了大约10天左右的时间试图解决这个问题取得了一些成功,但我仍然陷入困境。我正在制作一个在线预算系统,该系统采用Javascript值,通过Ajax将它们发送到PHP,然后将它们发送到数据库。这是我的javascript代码

$.ajax({
   url: 'yup.php',
   type:'post',
   data:{
          'Sal': Sal,
          'TaxReb': TaxReb,
          'RetInv': RetInv,
          'IntSave': IntSave,
          'Pen': Pen,
          'Dividends': Dividends,
          'Wages':Wages,
          'Loans':Loans,
          'Benefits':Benefits,
          'IncOther': IncOther,
          'Tax': Tax ,
          'Groc': Groc ,
          'Take':Take ,
          'Rent': Rent ,
          'Elec': Elec ,
          'Trans': Trans ,
          'Mort': Mort ,
          'LoanPay':LoanPay ,
          'Goods': Goods ,
          'ExpOther': ExpOther ,
          'TotalInc':TotalInc ,
          'TotalExp': TotalExp ,
          'NetInc':NetInc
    },

    success: function(data){
        alert(data);
        window.location.href='yup.php';
    }
});

值是整数,它们处理Jscript文件。警报给了我这条消息:

Array(
[Sal] => 33245
[TaxReb] => 324523
[RetInv] => 3245
[IntSave] => 2345
[Pen] => 3524
[Dividends] => 5342
[Wages] => 35425342
[Loans] => 5432
[Benefits] => 254325
[IncOther] => 4352
[Tax] => 34
[Groc] => 3434
[Take] => 34
[Rent] => 34
[Elec] => 34
[Trans] => 34
[Mort] => 34
[LoanPay] => 34
[Goods] => 34
[ExpOther] => 34
[TotalInc] => 36061675
[TotalExp] => 3740
[NetInc] => 36057935
)`

我的PHP代码是这样的:

<?php header(' charset=utf-8');
print_r($_POST)
//$Sal=$_POST['Sal'];
//echo $Sal;

然而,在我的PHP页面上,它给了我: 数组() 当我取消注释变量时,它会给我错误:

  

注意:未定义的索引:第2行的C:\ xampp \ htdocs \ example \ yup.php中的Sal

我在尝试获取实际变量时删除了print_r。 当我使用服务器请求方法时,警报会显示 post ,而php页面会显示 get 。这可能是问题的一部分,但我不知道如何解决它,我在这个或其他网站上看到的其他页面也没有。感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

您正在向yup.php发出两个单独的请求。有使用AJAX的POST请求,当您将用户重定向到yup.php函数中的success()时,会发出GET请求。 GET请求,即将信息发送回用户以在页面上显示的内容,不会从AJAX请求中接收信息,因为您没有在GET中向服务器发送任何信息请求。您之前向yup.php发出了单独的POST请求,该请求确实接收了数据并继续运行您的脚本(即打印出信息)。

如果您的目标是在提交AJAX请求后向用户显示服务器的某些响应,那么您应该使用data函数中的success()参数来执行此操作。您使用alert()所做的是提供数据的一种方式,但可能不尽如人意。您可能想要做的是使用JavaScript将数据插入当前页面。

这里要理解的关键点是你要向yup.php发出两个单独的请求,其中只有一个接收你使用AJAX发送的数据。