明生日历小工具制作:ajax获取php的返回值-明生-k8凯发旗舰
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分钟