我的Ajax应用程序运行正常,直到我在PHP脚本中实现了if语句...然后就像传染病一样,如果我对PHP中的数据执行任何操作,它就不会返回到Javascript层。< / p>
我能做的就是回复数据......
例如,我发送给PHP的查询字符串读取...
index.back3.php?form=login&json={"email":"mo@maurice-campobasso.com","password":"asdasdfas"}
我知道它到达那里是因为在我创建的最简单的调试PHP文件(index.back3.php)中我只有一个简单的echo语句......它永远不会将数据发送回Javascript文件
当index.back3.php读取
时<?php echo $_GET[json]; ?>
我在javascript中触发的警报可靠地吐出json字符串。
当它读取
时<?php echo $_GET[form]; ?>
当我得到更复杂的东西时,没有任何东西回到javascript。即使是简单的串联......
<?php echo ($_GET[form] . $_GET[json]); ?>
...什么都不返回!
一个简单的if ... else语句也不会返回任何内容。
<?php
if(!isset($_GET[form]) {
echo "no!";
} else {
echo "yes!";
}
?>
这个重要的行动也......
<?php
$array = json_decode($GET[json], true);
var_dump($array);
?>
什么都不返回。
好的......所以只是为了确保所有内容都在这里,这是我在Javascript层中的Ajax输出功能。
function responseAjax() {
if (myRequest.readyState == 4) {
if(myRequest.status == 200) {
var foo = myRequest.responseText;
alert(foo);
} else {
alert("An error has occured: " + myRequest.statusText);
}
}
}
有人可以解释一下发生了什么吗?我真的很难过。
答案 0 :(得分:0)
$ _ GET ['form']是正确的方式。
并使用表单作为变量名称并不是很好。
使用任何其他变量并传递$ _GET ['formname']。
尝试直接通过url访问php页面并传递参数,先检查php
返回错误或其工作推进。
您可以用简单的方式使用PHP,jquery和ajax。
尝试在jquery中找到.post或.get方法
http://api.jquery.com/jQuery.post/
$ .post('ajax / test.html',function(data){ $( '结果')HTML(数据)。 });
答案 1 :(得分:0)
if(!isset($_GET[form]) { echo "no!"; } else { echo "yes!"; }
&GT;
你在if语句中缺少右括号。并且如前所述,在数组键周围加上引号。
在开发过程中,您还应该将error_reporting打开到E_ALL。它有助于找出可能出现的小错误。
答案 2 :(得分:0)
我设法解决了它,它与我在这篇文章中省略的一行代码有关,因为我认为它是简化的。该功能的完整版本是这样的。
function responseAjax() {
if (myRequest.readyState == 4) {
if(myRequest.status == 200) {
var foo = myRequest.responseText;
var cookieData = eval("(" + foo + ")"); //this was the problem!!
alert(foo);
document.cookie = 'email =' + cookieData.email + '; path=/';
document.cookie = 'firstname =' + cookieData.FirstName + '; path=/';
} else {
alert("An error has occured: " + myRequest.statusText);
}
}
}
这是'var cookieData'行......虽然我不确定原因。