无法在Ajax应用程序中执行任何PHP操作
我的Ajax应用程序运行良好,直到我在PHP脚本中实现了一个if语句。。。然后,就像传染病一样,如果我在PHP中对数据做任何操作,它似乎不会返回任何东西到Javascript层无法在Ajax应用程序中执行任何PHP操作,php,javascript,ajax,get,Php,Javascript,Ajax,Get,我的Ajax应用程序运行良好,直到我在PHP脚本中实现了一个if语句。。。然后,就像传染病一样,如果我在PHP中对数据做任何操作,它似乎不会返回任何东西到Javascript层 function responseAjax() { if (myRequest.readyState == 4) { if(myRequest.status == 200) { var foo = myRequest.responseText; alert(foo); } else
function responseAjax() {
if (myRequest.readyState == 4) {
if(myRequest.status == 200) {
var foo = myRequest.responseText;
alert(foo);
} else {
alert("An error has occured: " + myRequest.statusText);
}
}
}
我所能做的就是回显数据
例如,我发送给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]; ?>
有人能解释一下发生了什么事吗?我真的被难住了。$\u GET['form']是正确的方法 使用form作为变量名一点也不好 使用任何其他变量并传递$\u GET['formname'] 尝试通过url直接访问php页面并传递参数,首先检查php 返回错误或其工作属性 您可以用简单的方式使用PHP、jquery和ajax 尝试在jquery中查找.post或.get方法 $.post'ajax/test.html',functiondata{ $'.result'.htmldata; }; ?> if语句中缺少右括号。如前几次所述,在数组键周围加引号
在开发过程中,您还应该打开向E_ALL报告错误。这有助于找出可能是什么小错误。我设法将其整理出来,这与我在本文中省略的一行代码有关,因为我认为它是冗余的。函数的完整版本如下所示
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”行。。。尽管我不知道为什么。请不要在GET查询中输入密码!引用你的字符串$_GET['something']不是$\u GET[something]查询字符串中的JSON是否已编码?启动Firebug,看看真实的网络数据。哈哈。。。别担心,比利,当我推出它的时候,我不会的。这只是为了方便,因为我设置了其他所有内容。{%22电子邮件%22:%22mo@maurice-campobasso.com%22,%22password%22:%22GOD%22}&rand=99496806hanks zod,我照你说的做了,php文件本身执行if语句!问题一定出在javascript.dod.yu更改变量名形式中。不要把javascript和formjQuery混淆在一起,这是我学习的重点。我想我可能会在晚上睡觉后读到它…离开jquery..yu ddnt关于变量名的回答:我更改了变量名,但应用程序仍然无法工作。。。我甚至使用了引号$\u GET['formname']。。。但是PHP文件本身确实起作用了。哦,我确实将错误报告设置为E_ALL。。。但正如我在上面的答案中所了解到的,问题似乎是Javascript,而不是PHP,因此我没有收到任何错误。
<?php
if(!isset($_GET[form]) {
echo "no!";
} else {
echo "yes!";
}
?>
<?php
$array = json_decode($GET[json], true);
var_dump($array);
?>
function responseAjax() {
if (myRequest.readyState == 4) {
if(myRequest.status == 200) {
var foo = myRequest.responseText;
alert(foo);
} else {
alert("An error has occured: " + myRequest.statusText);
}
}
}
if(!isset($_GET[form]) {
echo "no!";
} else {
echo "yes!";
}
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);
}
}
}