2016-12-31 48 views
0

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

$.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页面上它给了我这样的: 阵列() 当我取消对变量它给我的错误:

Notice: Undefined index: Sal in C:\xampp\htdocs\example\yup.php on line 2

我试图让实际变量时取出print_r。 当我使用服务器请求方法警告说而PHP页面说得到。这可能是问题的一部分,但我不知道如何解决这个问题,我在其他网站上看过的其他页面也不知道。所有的帮助表示赞赏。

+0

你确定路径url:'yup.php'是正确的吗?你有没有尝试在那里使用完整的路径? – Yeikel

+2

重定向将初始化一个新的'yup.php'实例,但不包含所有的发布数据。听起来就像你根本不需要ajax,只是想将它作为一个表单提交,或者你需要将ajax数据存储在会话变量 – charlietfl

+0

中如果你正在用POST数据发出一个AJAX请求到'yup.php ',为什么在请求之后立即重定向到'yup.php'(通过一个没有数据的GET请求)? –

回答

0

您正在向yup.php发出两个单独的请求。有使用AJAX进行的POST请求,并且在success()函数中将用户重定向到yup.php时发生GET请求。 GET请求是将信息发送回用户以在页面上显示的信息,它不接收来自AJAX请求的信息,因为您没有向GET请求发送任何信息。您以前曾向yup.php发出单独的POST请求,该请求确实收到数据并继续运行脚本(即打印出信息)。

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

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

+0

谢谢我没有意识到这是事实。 – Awtthem

相关问题