明生日历小工具制作: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分钟
发表评论
投稿
网站地图