关于AJAX的一些事

 在JQ中运用AJAX的操作是很舒服的一件事,一直以来我对他都有个错误的认识,直到遇见了问题才把他研究个透彻。

下面贴出两种AJAX的写法,当然都是正确的。

其一:   

$.ajax({
type: 'post',
url: '/index.php?act=do_login',
data: {admin_name:nVal,password:pVal},
success:function(msg){
// alert(msg);
if(msg == 0){
window.location.href = '/order/index.php?act=order_list';
}else{
alert(msg);
}
}
})

#####################################################

其二

$.ajax({
type: 'post',
url: '/index.php?act=do_login',
data: 'admin_name='+nVal+'&password='+pVal,
dataType: 'json',
success:function(json){
if(json.error == 0){
window.location.href = '/order/index.php?act=order_list';
}else{
alert(json.data);
}
}
})

#####################################################

这两种写法最大的区别在于传值方式,第一种就是很普通的类似POST的传值方式,第二种是用JSON格式传值。但是我觉的并不正确,其实这两种方式 传递给PHP文件的值都是类似POST传值方式,并无区别。区别则在于PHP文件给的返回值。第一种给的返回值只能是字符串,数字类型的,而方式二则可以返回数组形式的数据,当然这个数组必须使用json_encode()函数处理,处理过后就可以直接echo这个数组了(变为json格式)。在PHP中输出的数据便是返回值啦,在方法二中的json.error就是对应的PHP中的用json_encode处理的数组键名为error的值 ($arr['error'])。

还有一个小区别在于data的不同写法,第一种用的是类似数组形式的(键:值),第二种用的是URL地址栏拼接方式。两种都可以的哦。


#####################################################

function sys_msg_json($error,$data = ''){
$_array = array();
$_array['data'] = $data;
$_array['error'] = $error;
echo json_encode($_array);
exit;
}


#####################################################

上面就是封装好的专门用来处理AJAX返回值的方法

posted @ 2017-04-26 17:14  佛祖的腿毛  阅读(147)  评论(0编辑  收藏  举报