Heim >php教程 >php手册 >php查询mysql中的数据,并将结果返回为JSON格式,提取JSON中的数

php查询mysql中的数据,并将结果返回为JSON格式,提取JSON中的数

WBOY
WBOYOriginal
2016-06-06 19:53:251165Durchsuche

有这样一个问题:用AJAX返回数据时,怎么提取其中的信息,并将其写入网页的不同部分? 在W3CSCHOOL中提到过用AJAX返回的数据用JSON数据式,本人使用的是PHP作为后台脚本。 一开始自己拼装JSON式的数据,但是效果不好,后来查资料用了PHP中json_encode()函数

有这样一个问题:用AJAX返回数据时,怎么提取其中的信息,并将其写入网页的不同部分?
在W3CSCHOOL中提到过用AJAX返回的数据用JSON数据格式,本人使用的是PHP作为后台脚本。
一开始自己拼装JSON格式的数据,但是效果不好,后来查资料用了PHP中json_encode()函数,

$str是要待处理的数据,使用下面的语句即可输出json格式的数据,

其中JSON_NESCAPED_UNICODE说的是使用UNICODE格式的编码,

手册上说“该函数只能接受 UTF-8 编码的数据”,格式有很多种

echo json_encode($row,JSON_UNESCAPED_UNICODE);

前台页面发起ajax请求,核心部分是处理ajax返回的数据xmlHttp.respondText,

利用这条语句处理 txt=xmlHttp.responseText ;var obj = eval ("(" + txt + ")");,其中eval函数是关键。

eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:

ajax请求的代码如下:

var xmlHttp=null
function get_pic(str)
{ 
	/*search the file in mysql table pydot and pydot_g,
	then give the result to front page.start ajax request*/
	xmlHttp=GetXmlHttpObject()
	if (xmlHttp==null)
	 {
	 alert ("Browser does not support HTTP Request")
	 return
	 }
	var url="Public/Js/json.php";
	url=url+"?q="+str.innerHTML
	url=url+"&sid="+Math.random()
	//alert(url)
	xmlHttp.onreadystatechange=stateChanged 
	xmlHttp.open("GET",url,true)
	xmlHttp.send(null)
}

function stateChanged() 
{ 
var txt,x;
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { txt=xmlHttp.responseText ;
   //alert(txt)
	var obj = eval ("(" + txt + ")");
	document.getElementById("other").innerHTML=obj.other;
	document.getElementById("title").innerHTML=obj.title;
 } 
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
 {
 // Firefox, Opera 8.0+, Safari
 xmlHttp=new XMLHttpRequest();
 }
catch (e)
 {
 //Internet Explorer
 try
  {
  xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  }
 catch (e)
  {
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
return xmlHttp;
}

从代码中我们可以看出obj.title 提取出了返回文本中的title信息,并将其写入页面中id='title'的元素中。
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn