设为首页 收藏本站
查看: 1371|回复: 0

[经验分享] Jquery框架下Ajax与PHP数据交换

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-8-23 11:09:10 | 显示全部楼层 |阅读模式
  最近刚刚做了一个小项目,其中用到了大量的Ajax技术。当然了,刚开始用的时候,避免不了出现很多的错误,也走了汗多弯路,这里整理了出来,除了是为了供自己以后开发参考外,也是为了拿出来与大家分享,希望能让初学者少走弯路,也希望能够得到高手的批评与指正。  
一、前台传递字符串变量,后台返回字符串变量(非json格式)
  Javascript代码:
  这里,为了解决Ajax数据传递出现的汉字乱码,在字符串传递之前,使用javascript函数escape()对汉字字符串进行了编码,并且对返回
  的字符串使用unescape()函数进行解码,使得汉字得以正常显示。当然了,后台PHP代码也添加了头文件,以保证汉字字符串不会出现乱码。各种后台代码解决
  汉字乱码问题的方式如下:
  PHP:header('Content-Type:text/html;charset=GB2312');
  ASP:Response.Charset("GB2312")
  JSP:response.setHeader("Charset","GB2312");



1 $(function(){
2     var my_data="前台变量";
3     my_data=escape(my_data)+"";//编码,防止汉字乱码
4     $.ajax({
5         url: "ajax_php.php",  
6         type: "POST",
7         data:{trans_data:my_data},
8         //dataType: "json",
9         error: function(){  
10             alert('Error loading XML document');  
11         },  
12         success: function(data,status){//如果调用php成功   
13             alert(unescape(data));//解码,显示汉字
14         }
15     });
16     
17 });
  PHP代码:



1 <?php
2     header('Content-Type:text/html; charset=gb2312');//使用gb2312编码,使中文不会变成乱码
3     $backValue=$_POST['trans_data'];
4     echo $backValue."+后台返回";
5 ?>
  显示效果如下图所示:
  
  
DSC0000.png



二、前台传递多个一维数组,后台返回字符串变量(非json格式)
  Javascript代码:
  在非json格式下,后台只能返回字符串,如果想后台返回数组,可以采用json格式,在本文的后面会详细介绍。



1 $(function(){
2     var my_data=new Array();
3     var my_data1=new Array();
4     my_data[0]=0;
5     my_data[1]=1;
6     my_data[2]=2;
7     
8     my_data1[0]=10;
9     my_data1[1]=11;
10     my_data1[2]=12;
11     
12     $.ajax({
13         url: "ajax_php.php",  
14         type: "POST",
15         data:{trans_data:my_data,trans_data1:my_data1},
16         //dataType: "json",
17         error: function(){  
18             alert('Error loading XML document');  
19         },  
20         success: function(data,status){//如果调用php成功   
21             alert(data);
22         }
23     });
24     
25 });
  PHP代码:



1 <?php
2     header('Content-Type:text/html; charset=gb2312');//使用gb2312编码,使中文不会变成乱码
3     
4     //读取第一个数组
5     $backValue="trans_data:";
6     $trans=$_POST['trans_data'];
7     foreach($trans as $value)
8     {
9         $backValue=$backValue." ".$value;
10     }
11     
12     //读取第二个数组
13     $backValue=$backValue." , trans_data1:";
14     $trans=$_POST['trans_data1'];
15     foreach($trans as $value)
16     {
17         $backValue=$backValue." ".$value;
18     }
19     echo $backValue;
20 ?>
  显示效果如下图:
DSC0001.png



三、前台传递多个一维数组,后台返回二维数组(json格式)
  Javascript代码:



1 $(function(){
2     var my_data=new Array();
3     var my_data1=new Array();
4     my_data[0]=0;
5     my_data[1]=1;
6     my_data[2]=2;
7     
8     my_data1[0]=10;
9     my_data1[1]=11;
10     my_data1[2]=12;
11     
12     $.ajax({
13         url: "ajax_php.php",  
14         type: "POST",
15         data:{trans_data:my_data,trans_data1:my_data1},
16         dataType: "json",
17         error: function(){  
18             alert('Error loading XML document');  
19         },  
20         success: function(data){//如果调用php成功            
21             var back="";
22             for(var i=0;i<(data.length);i++){
23                 for(var j=0;j<data[0].length;j++){
24                     back+=" "+i+" 行 "+j+" 列 :"+data[j]+" ";
25                 }
26                 back+="\n";
27             }
28             alert(back);
29         }
30     });
31     
32 });
  PHP代码:



1 <?php
2     header('Content-Type:text/html; charset=gb2312');//使用gb2312编码,使中文不会变成乱码   
3     $backValue=array();
4     $backValue[0]=$_POST['trans_data'];   
5     $backValue[1]=$_POST['trans_data1'];
6     
7     echo json_encode($backValue);
8 ?>
  显示效果如下图:
DSC0002.png

四、前台传递一维数组和二维数组,后台返回二维数组(json格式)
  Javascript代码:



1 $(function(){
2     var my_data=new Array();
3     var my_data1=new Array();
4     var my_data2=new Array();
5     
6     my_data[0]=0;
7     my_data[1]=1;
8     my_data[2]=2;
9     
10     my_data1[0]=10;
11     my_data1[1]=11;
12     my_data1[2]=12;
13     
14     my_data2[0]=my_data;
15     my_data2[1]=my_data1;
16     
17     $.ajax({
18         url: "ajax_php.php",  
19         type: "POST",
20         data:{trans_data:my_data,trans_data1:my_data1,trans_data2:my_data2},
21         dataType: "json",
22         error: function(){  
23             alert('Error loading XML document');  
24         },  
25         success: function(data){//如果调用php成功            
26             var back="";
27             for(var i=0;i<(data.length);i++){
28                 for(var j=0;j<data[0].length;j++){
29                     back+=" "+i+" 行 "+j+" 列 :"+data[j]+" ";
30                 }
31                 back+="\n";
32             }
33             alert(back);
34         }
35     });
36     
37 });
  PHP代码:



1 <?php
2     header('Content-Type:text/html; charset=gb2312');//使用gb2312编码,使中文不会变成乱码   
3     $backValue=array();
4     $backValue=$_POST['trans_data2'];   
5     $backValue[2]=$_POST['trans_data'];   
6     $backValue[3]=$_POST['trans_data1'];
7     
8     echo json_encode($backValue);
9 ?>
  显示效果如下图:
DSC0003.png

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-102913-1-1.html 上篇帖子: 从零开始PHP学习 下篇帖子: 关于PHP位运算的简单权限设计
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表