1.写在前面
大四的最后一个实验课,选择了移动通信系统应用,课上入门了python与php的一些东西,但是最后我用html网页中js来访问后台php的时候,才发现有很多坑。
2.入门与要点
(1)js如何与后端php做post请求,后端php如何接受json数据以及解析。
//js发送post请求的函数,为了方便使用jquery
function query(xxx){
$.ajax({
url:"http://192.168.1.254/index_gp.php",
async:false,
type:"POST",
data:JSON.stringify(xxx),
contentType:"application/json;charset=utf-8",
success:function(data){
$$(".content").innerText = data;
}
});
}
//调用这个函数的例子
var queryStr = {op:"query",id:5,name:"",type:1,value:""}
query(queryStr);
上面的代码中,参数xxx是json格式的,所以首先要contentType设置为 “application/json;charset=utf-8”,其次type不要忘记写,data需要使用JSON.stringify(xxx),把json转为字符串格式,注意js与php之间是不能直接穿json的,这样转为字符串然后再php内再解码为json就可以了。
//php接收数据的方式
<?php
$input = file_get_contents("php://input");
$op = json_decode($input);
if( $op->{"id"}>=100 ) $tabName = "controler";
?>
$input
这样的写法是其中一种,也是比较推荐的写法,适用于post的数据是上面的那种形式,这样$input
就直接读取到post的data,也就是JSON.stringify(xxx)的结果,然后使用json_decode解码得到json格式数据。
(2)后端php返回数据
很简单就是echo返回的结果,在前端js,也就是上面ajax请求那里,也就是
success:function(data){
$$(".content").innerText = data;
}
这里的data就是php返回过来的值。
这个文章主要是入门,毕竟我是使用nodejs做后端的,没用过php,之后遇到起码可以有参考。