Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Ajax应用程序中执行任何PHP操作_Php_Javascript_Ajax_Get - Fatal编程技术网

无法在Ajax应用程序中执行任何PHP操作

无法在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

我的Ajax应用程序运行良好,直到我在PHP脚本中实现了一个if语句。。。然后,就像传染病一样,如果我在PHP中对数据做任何操作,它似乎不会返回任何东西到Javascript层

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);
        }
    }
}