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

一、前台传递字符串变量,后台返回字符串变量(非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代码:

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

$backValue=$_POST['trans_data'];

echo $backValue."+后台返回";

?>

显示效果如下图所示:

L3Byb3h5L2h0dHAvd3d3LnBocDEwMC5jb20vdXBsb2FkZmlsZS8yMDEzLzAxMjIvMjAxMzAxMjIxMDE1NDgyNjAucG5n.jpg

二、前台传递多个一维数组,后台返回字符串变量(非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代码:

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;

?>

显示效果如下图:

L3Byb3h5L2h0dHAvd3d3LnBocDEwMC5jb20vdXBsb2FkZmlsZS8yMDEzLzAxMjIvMjAxMzAxMjIxMDE1NDk0NDgucG5n.jpg

三、前台传递多个一维数组,后台返回二维数组(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

for(var j=0;j

back+=" "+i+" 行 "+j+" 列 :"+data[i][j]+" ";

}

back+="\n";

}

alert(back);

}

});

});

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);

?>

显示效果如下图:

L3Byb3h5L2h0dHAvd3d3LnBocDEwMC5jb20vdXBsb2FkZmlsZS8yMDEzLzAxMjIvMjAxMzAxMjIxMDE1NDkxMTEucG5n.jpg

四、前台传递一维数组和二维数组,后台返回二维数组(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

for(var j=0;j

back+=" "+i+" 行 "+j+" 列 :"+data[i][j]+" ";

}

back+="\n";

}

alert(back);

}

});

});

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);

?>

显示效果如下图:

L3Byb3h5L2h0dHAvd3d3LnBocDEwMC5jb20vdXBsb2FkZmlsZS8yMDEzLzAxMjIvMjAxMzAxMjIxMDE1NTAzOTQucG5n.jpg

jquery下php与ajax的互传数据(json格式)自我总结

研究了一整天的json数据与ajax的数据传输,现在进行一个小的自我总结,仅供参考 1.关于ajax的认识 $.ajax(),是jquery下包装好的一个函数:参考地址:http://www.w3sc ...

NetFlow是一种数据交换方式,提供网络流量的会话级视图,记录下每个TCP/IP事务的信息

NetFlow是一种数据交换方式,提供网络流量的会话级视图,记录下每个TCP/IP事务的信息.也许它不能象tcpdump那样提供网络流量的完整记录,但是当汇集起来时,它更加易于管理和易读.Netflo ...

p40_数据交换方式

一.为什么要数据交换 数据链路发展史: 二.数据交换方式 电路交换 报文交换 分组交换[数据报方式,虚电路方式] 三.电路交换 eg:电话网络(特点:**独占资源,**即使两个人不说话,链接也不会被别 ...

DeviceIoControl函数对应的四种数据交换方式

交换方式                                输入缓冲区                                         输出缓冲区 METHOD_BUFFE ...

【summary】JQuery 相关css、ajax、数据操作函数或方法

总结一下JQuery常用的函数方法,更加系统的整理一下. JQuery遍历的一些函数: 函数 描述 .add() 将元素添加到匹配元素的集合中. .andSelf() 把堆栈中之前的元素集添加到当前集 ...

关于试用jquery的jsonp实现ajax跨域请求数据的问题

我们在开发过程中遇到要获取另一个系统数据时,就造成跨域问题,这就是下文要说的解决办法: 先我们熟悉下json和jsonp的区别: 使用AJAX就会不可避免的面临两个问题,第一个是AJAX以何种格式来交 ...

【AS3】Flash与后台数据交换四种方法整理

随着Flash Player 9的普及,AS3编程也越来越多了,所以这次重新整理AS3下几种与后台数据交换方法.1.URLLoader(URLStream)2.FlashRemoting3.XMLSo ...

【计算机网络基础】数据交换技术和多路复用技术的正(nao)确(can)打开方式

交换的作用   数据交换是计算机网络中两个终端进行数据传输的方式,它又可以分成两种类型:电路交换和分组交换.很显然,问题的核心在于“交换”,那么我们首先要思考的是:交换的作用是什么?   “交换”的作 ...

【计算机网络】数据交换技术和多路复用技术的正(nao)确(can)打开方式

交换的作用   数据交换是计算机网络中两个终端进行数据传输的方式,它又可以分成两种类型:电路交换和分组交换.很显然,问题的核心在于“交换”,那么我们首先要思考的是:交换的作用是什么?   “交换”的作 ...

随机推荐

redmine发送邮件

vim /data/server/redmine/apps/redmine/htdocs/config/configuration.yml default: # Outgoing emails con ...

给Jquery添加alert,prompt方法,类似系统的Alert,Prompt,可以响应键盘,支持拖动

我们在调用系统的Alert,prompt的弹出提示时,不同的系统会有不同的提示框,视觉效果不统一,而且不好看,功能单一,现在我们通过Jquery模拟Alert,prompt,现实统一视觉效果,而且内容 ...

Uva_11916 Emoogle Grid

题目链接 题意: 有个N X M的棋盘, 有K种颜色, 有B个不可涂色的位置, 共有R种涂色方案. 1)每个可涂色的位置必须涂上一种颜色 2)不可涂色位置不能涂色 3)每个位置必须从K种颜色中选出一种 ...

php Smarty详细配置

1.在Smarty官网下载 路径:https://github.com/smarty-php/smarty/releases 2.把下载下来的Smarty解压出来 3.把解压出来的Smarty里面的l ...

用python做oj上的简单题(持续更新中.......)

本人刚開始接触python,在oj上解一些简单的题,欢迎交流,不喜勿喷. OJ地址链接:acm.sdut.edu.cn http://acm.sdut.edu.cn/sdutoj/showproble ...

【翻译】在Ext JS 5应用程序中怎样使用路由

原文:How to Use Routing in Your Ext JS 5 Apps 简单介绍 Ext JS 5是一个重要的公布版本号,它提供了很多新特性来创建丰富的.企业级的Web应用程序.MVV ...

python文件读和写

fileHandle = open ( 'G:/qqfile/1.txt','w' )fileHandle.write('abcd')#写文件 地址要用反斜杠fileHandle.close() fi ...

Django_ KindEditor 插件使用

KindEditor  富文本编辑器插件 目的及原理: 更便捷的在前端页面上实现用户的文本编辑操作, 本质上就是对标签的样式进行封装和事件预处理, 常规操作都可以通过直接的引入即可实现, 但是对于存在 ...

多线程Java面试题总结

57.Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?答:sleep()方法(休眠)是线程类(Thread)的静态方法,调用此方法会让当前线程暂停执行指 ...

一致性哈希算法(Consistent Hashing) .

应用场景 这里我先描述一个极其简单的业务场景:用4台Cache服务器缓存所有Object. 那么我将如何把一个Object映射至对应的Cache服务器呢?最简单的方法设置缓存规则:object.has ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值