明生日历小工具制作: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<data.length;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两个函数的不同用法。

精选留言

历法
sample
2023-10-03
写留言
签到
投稿
QQ咨询
返回顶部