我花了大约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 。这可能是问题的一部分,但我不知道如何解决它,我在这个或其他网站上看到的其他页面也没有。感谢所有帮助。
答案 0 :(得分:0)
您正在向yup.php
发出两个单独的请求。有使用AJAX的POST请求,当您将用户重定向到yup.php
函数中的success()
时,会发出GET请求。 GET请求,即将信息发送回用户以在页面上显示的内容,不会从AJAX请求中接收信息,因为您没有在GET中向服务器发送任何信息请求。您之前向yup.php
发出了单独的POST请求,该请求确实接收了数据并继续运行您的脚本(即打印出信息)。
如果您的目标是在提交AJAX请求后向用户显示服务器的某些响应,那么您应该使用data
函数中的success()
参数来执行此操作。您使用alert()
所做的是提供数据的一种方式,但可能不尽如人意。您可能想要做的是使用JavaScript将数据插入当前页面。
这里要理解的关键点是你要向yup.php
发出两个单独的请求,其中只有一个接收你使用AJAX发送的数据。