jquery下php与ajax的数据交换方式

参考链接:http://www.php100.com/html/webkaifa/PHP/PHPyingyong/2013/0122/11971.html

一、前台传递字符串变量,后台返回字符串变量(非json格式)

  Javascript代码:

  这里,为了解决Ajax数据传递出现的汉字乱码,在字符串传递之前,使用javascript函数escape()对汉字字符串进行了编码,并且对返回

的字符串使用unescape()函数进行解码,使得汉字得以正常显示。当然了,后台PHP代码也添加了头文件,以保证汉字字符串不会出现乱码。各种后台代码解决

汉字乱码问题的方式如下:

  PHP:header(‘Content-Type:text/html;charset=GB2312‘);

					 $(function(){
     var my_data="前台变量";
     my_data=escape(my_data)+"";//编码,防止汉字乱码
     $.ajax({
         url: "ajax_php.php",
         type: "POST",
         data:{trans_data:my_data},
         //dataType: "json",
         error: function(){
             alert(‘Error loading XML document‘);
         },
         success: function(data,status){//如果调用php成功
             alert(unescape(data));//解码,显示汉字
         }
     });

 });

  PHP代码:

					 <?php
     header(‘Content-Type:text/html; charset=gb2312‘);//使用gb2312编码,使中文不会变成乱码
     $backValue=$_POST[‘trans_data‘];
     echo $backValue."+后台返回";
 ?>

显示效果如下图所示:

二、前台传递多个一维数组,后台返回字符串变量(非json格式)

  Javascript代码:

  在非json格式下,后台只能返回字符串,如果想后台返回数组,可以采用json格式,在本文的后面会详细介绍。

					 $(function(){
     var my_data=new Array();
     var my_data1=new Array();
     my_data[0]=0;
     my_data[1]=1;
     my_data[2]=2;

     my_data1[0]=10;
     my_data1[1]=11;
     my_data1[2]=12;

     $.ajax({
         url: "ajax_php.php",
         type: "POST",
         data:{trans_data:my_data,trans_data1:my_data1},
         //dataType: "json",
         error: function(){
             alert(‘Error loading XML document‘);
         },
         success: function(data,status){//如果调用php成功
             alert(data);
         }
     });

 });

  PHP代码:

					  <?php
      header(‘Content-Type:text/html; charset=gb2312‘);//使用gb2312编码,使中文不会变成乱码

      //读取第一个数组
      $backValue="trans_data:";
      $trans=$_POST[‘trans_data‘];
      foreach($trans as $value)
      {
          $backValue=$backValue." ".$value;
     }

     //读取第二个数组
     $backValue=$backValue." , trans_data1:";
     $trans=$_POST[‘trans_data1‘];
     foreach($trans as $value)
     {
         $backValue=$backValue." ".$value;
     }
     echo $backValue;
 ?>

显示效果如下图:

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

  Javascript代码:

					  $(function(){
     var my_data=new Array();
     var my_data1=new Array();
     my_data[0]=0;
     my_data[1]=1;
     my_data[2]=2;

     my_data1[0]=10;
     my_data1[1]=11;
     my_data1[2]=12;

     $.ajax({
         url: "ajax_php.php",
         type: "POST",
         data:{trans_data:my_data,trans_data1:my_data1},
         dataType: "json",
         error: function(){
             alert(‘Error loading XML document‘);
         },
         success: function(data){//如果调用php成功
             var back="";
             for(var i=0;i<(data.length);i++){
                 for(var j=0;j<data[0].length;j++){
                     back+=" "+i+" 行 "+j+" 列 :"+data[i][j]+" ";
                 }
                 back+="\n";
             }
             alert(back);
         }
     });
 });

  PHP代码:

					 <?php
     header(‘Content-Type:text/html; charset=gb2312‘);//使用gb2312编码,使中文不会变成乱码
     $backValue=array();
     $backValue[0]=$_POST[‘trans_data‘];
     $backValue[1]=$_POST[‘trans_data1‘];

     echo json_encode($backValue);
 ?>

显示效果如下图:

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

  Javascript代码:

					 $(function(){
     var my_data=new Array();
     var my_data1=new Array();
     var my_data2=new Array();

     my_data[0]=0;
     my_data[1]=1;
     my_data[2]=2;

     my_data1[0]=10;
     my_data1[1]=11;
     my_data1[2]=12;

     my_data2[0]=my_data;
     my_data2[1]=my_data1;

     $.ajax({
         url: "ajax_php.php",
         type: "POST",
         data:{trans_data:my_data,trans_data1:my_data1,trans_data2:my_data2},
         dataType: "json",
         error: function(){
             alert(‘Error loading XML document‘);
         },
         success: function(data){//如果调用php成功
             var back="";
             for(var i=0;i<(data.length);i++){
                 for(var j=0;j<data[0].length;j++){
                     back+=" "+i+" 行 "+j+" 列 :"+data[i][j]+" ";
                 }
                 back+="\n";
             }
             alert(back);
         }
     });

 });

  PHP代码:

					 <?php
     header(‘Content-Type:text/html; charset=gb2312‘);//使用gb2312编码,使中文不会变成乱码
     $backValue=array();
     $backValue=$_POST[‘trans_data2‘];
     $backValue[2]=$_POST[‘trans_data‘];
     $backValue[3]=$_POST[‘trans_data1‘];

     echo json_encode($backValue);
 ?>

显示效果如下图:

时间: 2024-08-03 08:08:56

jquery下php与ajax的数据交换方式的相关文章

jquery下php与ajax的互传数据自我总结

研究了一整天的json数据与ajax的数据传输,现在进行一个小的自我总结,仅供参考 1.关于ajax的认识 $.ajax(),是jquery下包装好的一个函数.http://www.w3school.com.cn/jquery/ajax_ajax.asp 使用其跟php段进行通信. <script type="text/javascript">  //jquery直接进行ajax的包装调用       $(function(){                       

物理隔离下的数据交换平台难点解析与实践(一)

目录 第零章.前言:为什么?做什么?怎么做? 第一章.数据交换平台的一些基本概念 目录 第零章.前言:为什么?做什么?怎么做? 最近带队做了公司的一个项目,叫数据交换平台,旨在物理隔离的情况下对多端业务系统进行数据的加密.传输.监控. 正好这个项目的架构师也在公司做了一次架构层面的技术分享,我便把此次分享和我在项目实践中遇到的一些坑一起整理出来,形成本系列文章. 本系列文章介绍在物理隔离的网络条件下进行数据交换的难点,以及如何保证文件交换的可靠性和安全性,如何与业务系统做到低耦合. 本文的目的在

物理隔离与数据交换-网闸的设计原理

一.什么是网闸 网闸技术的需求来自内网与外网数据互通的要求,比如政府的电子政务是对公众服务,与互联网连通,而内网的政府办公网络,由于保密的要求,内网若与网连通,则面临来自公网的各种威胁.安全专家给出的建议是:由于目前的安全技术,无论防火墙.UTM等防护系统都不能保证攻击的一定阻断,入侵检测等监控系统也不能保证入侵行为完全捕获,所以最安全的方式就是物理的分开,所以在公安部的技术要求中,要求电子政务的内.外网络之间"物理隔离".没有连接,来自外网对内网的攻击就无从谈起. 但是,网络的物理隔

在.NET使用JSON作为数据交换格式

我们知道在.NET中我们有多种对象序列化的方式,如XML方式序列化.Binary序列化,其中XML序列化是一种比较通用的在各语言之间传递数据的方式.除了这两种序列化方式之外,在.NET中还可以使用JSON序列化.JSON(JavaScript Object Notation)是一种轻量级轻量级的数据交换格式,并且它独立于编程语言,与XML序列化相比,JSON序列化后产生的数据一般要比XML序列化后数据体积小,所以在Facebook等知名网站中都采用了JSON作为数据交换方式.在.NET中有三种常

在.NET使用JSON作为数据交换格式【转】

http://www.cnblogs.com/zhoufoxcn/archive/2011/03/16/2515611.html 我们知道在.NET中我们有多种对象序列化的方式,如XML方式序列化.Binary序列化,其中XML序列化是一种比较通用的在各语言之间传递数据的方式.除了这两种序列化方式之外,在.NET中还可以使用JSON序列化.JSON(JavaScript Object Notation)是一种轻量级轻量级的数据交换格式,并且它独立于编程语言,与XML序列化相比,JSON序列化后产

在.NET使用JSON作为数据交换格式(转)

我们知道在.NET中我们有多种对象序列化的方式,如XML方式序列化.Binary序列化,其中XML序列化是一种比较通用的在各语言之间传递数据的方式.除了这两种序列化方式之外,在.NET中还可以使用JSON序列化.JSON(JavaScript Object Notation)是一种轻量级轻量级的数据交换格式,并且它独立于编程语言,与XML序列化相比,JSON序列化后产生的数据一般要比XML序列化后数据体积小,所以在Facebook等知名网站中都采用了JSON作为数据交换方式.在.NET中有三种常

系统间数据交换的5种方式

工作中常会遇到系统对接,交换数据,将用过的对接数据交换方式简要回顾一下. 一,原始的方式,直接文件交换 通过定义csv,xml,json等文件,一方支持数据导出,另一方支持数据导入.最开始是人手工完成,做的好点的可以通过程序自动完成,比如数据提供方自动导出后放入某个目录,数据接收方定时访问目录获取数据处理.或者是数据接收方提供ftp等文件上传服务,提供方生成数据后上传给接收方处理. 二,偏原始的方式,数据库交换 常规做法是数据提供方给接收方提供数据视图,开放有视图权限的用户脸色,数据接受方定时查

跨网的数据交换解决方案

一.什么是跨网跨网是指在互联网与局域网之间不能直接连通的网络.这些局域网可以是保密性较高的单独的局域网,也可以是公安网.军网等. 二.为什么要跨网传输以公安网为例,公安网对数据安全的要求较高,所以不与互联网直接连通.然而我们系统可能需要在互联网和公安网内都可以运行,那运行期间业务数据肯定有关联,就需要互相传递. 三.解决思路跨网的数据交换方式主要分为两种,一种是光盘摆渡机,一种是光闸. 光盘摆渡机简单来讲,先用光盘刻录需要传输信息,然后用机械臂换到需要交换的另一端网络,然后读取存储,这样就完成了

网站分析数据收集方式详解

回顾网站数据分析历史,从“您是第***位来访用户”到现在百家齐放的专业工具提供商,网站分析已经逐渐发展衍化成一门科学.但面对形态各异的分析数据,很多人仍然困惑于数据的来源,了解数据的收集原理,也许对你解决这些困惑有所帮助. 眼下网站分析数据主要有三种收集方式:Web日志.JavaScript标记和包嗅探器. 1. Web日志 下图是Web日志收集数据过程的示意图. 从上图可以看出网站分析数据的收集从网站访问者输入URL向网站服务器发出http请求就开始了.网站服务器接收到请求后会在自己的Log文