明生日历小工具制作:ajax获取php的返回值-明生-凯发官网入口
ajax获取php的返回值跟数据传递类型相关,不同类型传值获取方法不同。
明生日历小工具中有这样一个需求,左右点击按钮后,日期前进或后退一日,自动刷新当前日历表。
这里记一下基本操作过程。
一、对象(map)或者实体(string)字符串
如ajax返回数据类型是对象(map)或者实体(string)字符串的话,可以根据类似键值对(属性)用方括号和点号直接取值:
success:function(data){
alert(data["name"]);
alert(data["password"]);
}
不知道属性(key),可以遍历取值
success:function(data){
for(var key in data){
alert(data[key]);
}
}
二、列表(list)
这的列表类似php中数组,通用取值方法是遍历。
可以使用for循环,或js内置each、eval等函数来遍历json数组。
success:function(data){
for(var i=0;i
alert(data[i]);
}
}
success:function(data){
$.each(data,function(item,result){
alert(result);
});
}
实例
这里的日历表返回数值有两种形式,一种是返回简单的日期增加或减少一天的php一维数组,另外一种是查询数据库的日历数据返回二维数组。两者的操作思路类似,只是ajax获取返回值的方式不一样。
一、php返回日历一维数组
(1)ajax文件
var tc; var pc;
$.ajax({
url:'rili.php',
data:{tc:tc,pc:pc},
type:"post",
datatype:"json",
async: false,//同步
success: function(json){
var data =eval(json);
console.log(data);
var tcx = data.tc;
var pcx = data.pc;
alert(data.pcx);
}
});(2)php文件
header('content-type: application/json');
$tc = $_post["tc"];
$pc = $_post["pc"];//创建一个关联数组
$arr =array();
$arr['tc']=$tc;
$arr['pc'] =$pc;
echo json_encode($arr);二、php返回日历二维数组
(1)ajax文件
var tc; var pc;
$.ajax({
url:'rili.php',
data:{tc:tc,pc:pc},
type:"post",
datatype:"json",
async: false,//同步
success: function(json){
$.each(data6, function(i, obj) {
console.log(data);
var tcx = obj.tc;
var pcx = obj.pc;
alert(data.pcx);
}
});(2)php文件
header('content-type: application/json');
$tc = $_post["tc"];
$pc = $_post["pc"];
#s = where pid='$tc'" and qid ='$pc';
#res = $pdo->query($sql);
#arr = $res -fetchall();
#将数据变为二维数组//var_dump($arr);
$response = $arr;
echo json_encode($response, json_unescaped_unicode);经过以上操作,ajax正确获取到了php返回值并赋值给一个全局变量。
这里主要注意js中each和eval两个函数的不同用法。
共3990字,大约需要9分钟

