标签:
转自:http://www.cnblogs.com/satng/
我们使用jQuery.ajax函数是不能实现success方法return值的,而有时候我们需要对成功返回的数据进行处理,一般来说,与服务器交互后会返回很多的数据,而有些数据需要进行特别处理,这时需要实现success方法return,但jQuery.ajax中是无法实现的,传统的jQuery.ajax使用如下:
- jQuery.ajax({
- type: "POST",
- url: "some.php",
- data: "name=John&location=Boston",
- success: function(msg){
- return msg;
- }
- });
如上:return msg;操作是无效的。
我们与服务器交互后,返回数据在msg中,但我们需要实现一个return,那么如何解决这个问题。
思路,通过传入一个函数,jQuery.ajax触发success事件调用这个函数,并把返回的数据msg传递给传入的函数,实现函数对数据的处理。
为了解决这个问题,写了一个实例,分别有三个文件,一个html文件、js文件和PHP文件。
实例分析: 一,JS部分
- var biuuu = {};
- biuuu._ajax = function(url,data,datatype,_success_func,_error_func){
- jQuery.ajax({
- type:"post",
- url:url,
- data:data,
- dataType:datatype,
- success:function(info){
- _success_func(info);
- },
- error:function(){
- _error_func();
- }
- });
- }
传入四个参数,分别是 url:是处理ajax提交的PHP文件,如下:biuuu.php data:传入的post数据,如下:do=test datatype:表示数据类型,如下:json _success_func:处理成功操作的函数名,如下:biuuu.succfunction _error_func:处理失败操作的函数名,如下:biuuu.failfunction
二,HTML部分(触发事件)
- <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
- <script type="text/javascript" src="biuuu.js"></script>
- <script type="text/javascript">
- <!--
- jQuery(document).ready(function(){
- jQuery("#open").click(function(){
- biuuu._ajax("biuuu.php",‘do=test‘,‘json‘,biuuu.succfunction,biuuu.failfunction);
- });
- });
- biuuu.succfunction = function(info){
- alert(info.message);
- }
- biuuu.failfunction = function(){
- alert(‘fail‘);
- }
- //-->
- </script>
- <a href="#" id="open">test</a>
当点击test后,触发ajax提交,实功调用biuuu.succfunction函数,失败调用biuuu.failfunction函数
三,PHP部分
- <?php
- $info = array (‘message‘ => ‘biuuu is success‘,‘bool‘ => TRUE );
- print_r ( json_encode ( $info ) );
- exit ();
- ?>
返回一个json数据
解决方法其实很简单,用传入函数名的方法来解决jQuery.ajax不能实现return值调用问题。
点我下载 如果解决jQuery.ajax不能实现return值调用问题 实例
jQuery.ajax不能实现return值调用问题
标签:
原文地址:http://www.cnblogs.com/shyack/p/4947665.html