php从mysql提取数据返回到前端_php查询mysql中的数据,并将结果返回为JSON格式,提取JSON中的数...

有这样一个问题:用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'的元素中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值