当前位置: >首页>新闻列表>惠州模板建站,说下api和js读取的格式问题
在模板建站中,我们发现很多时候都要用到的语法就是php打印出你要的数据,然后js读取这个数据并用json格式化之后,进行输出或者判断。这里面怎么写比较省时省力省心呢?
惠州模板建站今天用tp6作为例子跟大家说一下怎么写比较好。首先就是php端,我们需要对查询的数据进行查询然后生成我们要的数据。最开始的就是传值问题。这里用api作为一个单独的应用写一个这个的返回。
public function getidtodata(){
$id=Request::param("id/d"); 用Request 来获取id的值,并用 /d 这个来强制转换成int型。为什么要这么输入?主要为了防止sql注入,这个比较难应对。所以从根源上杜绝这个问题。
$fhdata=Db::name("news")->where("id","=",$id)->select();
if($fhdata){
echo json_encode($fhdata); //用json_encode将返回的数组转换成字符串。并输出。
}
}
到这里,我们的服务器上的数据就查询并输出了。简单的几行代码,就将接受的数据显示到了我们的查询接口上。并且已经用json_encode的方式输出到字符串。
那么客户端又是怎么做的呢?
客户端分成两部分,第一步就是查询的输入,第二个就是将查询的结果输出。
我们最喜欢用的ajax方式。
$(document).ready(function(){
var id=$("#id").val();
var str="";
$("#div").html("");
$.ajax({
url =>"/api.php/ajax/getidtodata" //你的api接口地址
data=>{
"id":id
} ,
success:(suc)={
console.log(suc); //这里用suc来记录你的接口返回的数据
var suc_json=JSON.parse(suc); //转换成json的记录
each($suc_json,function(){ //each遍历json
str="<li class='lic'>"+$(this)[0].title+"</li>" //要输出的记录
$("#div").append(str);
});
},
fail:(e)=>{
console.log(e);
}
});
})
上面的代码中,分成了两个部分,第一就是输入参数,获得要的结果。这里的结果是字符串的。我们需要用JSON.parse()这个来转换json。然后用each这个来遍历json的结果。
到这里,查询和调用的就写完了。我们要注意的是什么呢?首先,服务端,尽量用echo json的方式来输出,然后,客户端就用json的方式来解压。这里的目的就是为了提升开发速度,降低代码出错的概率。
来源:惠州模板建站