Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.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
将JSON AJAX回复传递给PHP_Php_Ajax_Json - Fatal编程技术网

将JSON AJAX回复传递给PHP

将JSON AJAX回复传递给PHP,php,ajax,json,Php,Ajax,Json,我有一个使用AJAX连接到PHP脚本的脚本,该脚本查询数据库并返回一些值。其代码如下: <script> function showUser(str) { if (str=="") { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xm

我有一个使用AJAX连接到PHP脚本的脚本,该脚本查询数据库并返回一些值。其代码如下:

<script>
function showUser(str)
{
if (str=="")
  {
  document.getElementById("txtHint").innerHTML="";
  return;
  } 
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","ajaxphp.php?ID="+str,true);
xmlhttp.send();
}
</script>

<select id="users" name="users" onchange="showUser(this.value)">
<option value="">Select a person:</option>
<!-- PHP populates this dropdown box -->
</select>
<div id="txtHint"><b>Selected user info will be listed here.</b></div>

函数showUser(str)
{
如果(str==“”)
{
document.getElementById(“txtHint”).innerHTML=“”;
返回;
} 
if(window.XMLHttpRequest)
{//IE7+、Firefox、Chrome、Opera、Safari的代码
xmlhttp=新的XMLHttpRequest();
}
其他的
{//IE6、IE5的代码
xmlhttp=新的ActiveXObject(“Microsoft.xmlhttp”);
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”,“ajaxphp.php?ID=“+str,true”);
xmlhttp.send();
}
选择一个人:
所选用户信息将列在此处。
现在,txtHint div将返回ajaxphp.php脚本打印的任何内容。然而,这不是很灵活。我要做的是在ajaxphp.php中创建一个数组,并使用json_encode()将结果传回


我遇到的问题是,我不知道如何让原始脚本获取结果,以便我可以用它们做有用的事情。现在,我可以让它返回一个JSON数组,该数组将出现在txtHint div中,但我不知道如何让PHP实际读取该信息,以便我可以对其进行处理。

使用
$\u get
方法查看用户在PHP中发送给您的内容。请参见此处:

也许json_decode()php方法就是您想要的解决方案

此方法获取一个JSON编码的字符串(例如来自JSON_encode方法)并将其转换为PHP变量。。。因此,您可以像使用对象一样使用此变量,只需访问其属性即可

也许这篇文章能帮你:


希望这有帮助!再见

尝试使用jQuery Ajax

    $.ajax({
        url : 'ajaxphp.php?ID='+str,                          
        type: 'get',                   
        dataType:'json',                   
    success : function(data) {  
        console.log(data);
    }
   });
success函数参数中的数据是您从php返回的编码结果

echo json_encode($result); 
然后,您可以通过javascript中的类似内容访问它

data.result1
data.result2
data.result3....

如果可以让PHP返回JSON数组,那么需要更改的是javascript函数,而不是PHP。而不是
document.getElementById(“txtHint”).innerHTML=xmlhttp.responseText
,您将使用您的代码解析数组并使用它做一些有用的事情。在另一个主题中,我建议您看看现有的库,例如jQuery,它为您处理很多事情,包括处理浏览器差异和将响应解析回javascript数组。我知道json_decode()存在,问题是我不知道如何将AJAX脚本的结果传递给json_decode()。感谢您的回复,我已经完成了所有工作,直到最后一点。我对Javascript不是很熟悉,所以我不知道如何像你说的那样访问这些数据。我想用它来填充各种表单字段,将来可能需要一些处理。有没有办法将json编码的结果返回给PHP?试着读一下这篇文章,在javascript中处理json对象真的很容易。只需在浏览器中打开console,即可从console.log(数据)查看结果;命令