zoukankan      html  css  js  c++  java
  • jQuery.ajax不能实现return值调用问题

    我们使用jQuery.ajax函数是不能实现success方法return值的,而有时候我们需要对成功返回的数据进行处理,一般来说,与服务器交互后会返回很多的数据,而有些数据需要进行特别处理,这时需要实现success方法return,但jQuery.ajax中是无法实现的,传统的jQuery.ajax使用如下:

    1. jQuery.ajax({
    2. type: "POST",
    3. url: "some.php",
    4. data: "name=John&location=Boston",
    5. success: function(msg){
    6. return msg;
    7. }
    8. });

    如上:return msg;操作是无效的。

    我们与服务器交互后,返回数据在msg中,但我们需要实现一个return,那么如何解决这个问题。

    思路,通过传入一个函数,jQuery.ajax触发success事件调用这个函数,并把返回的数据msg传递给传入的函数,实现函数对数据的处理。

    为了解决这个问题,写了一个实例,分别有三个文件,一个html文件、js文件和PHP文件。

    实例分析:
    一,JS部分

    1. var biuuu = {};
    2. biuuu._ajax = function(url,data,datatype,_success_func,_error_func){
    3. jQuery.ajax({
    4. type:"post",
    5. url:url,
    6. data:data,
    7. dataType:datatype,
    8. success:function(info){
    9. _success_func(info);
    10. },
    11. error:function(){
    12. _error_func();
    13. }
    14. });
    15. }

    传入四个参数,分别是
    url:是处理ajax提交的PHP文件,如下:biuuu.php
    data:传入的post数据,如下:do=test
    datatype:表示数据类型,如下:json
    _success_func:处理成功操作的函数名,如下:biuuu.succfunction
    _error_func:处理失败操作的函数名,如下:biuuu.failfunction

    二,HTML部分(触发事件)

    1. <script type="text/javascript" src="http://code.jquery.com/jquery.js"></script>
    2. <script type="text/javascript" src="biuuu.js"></script>
    3. <script type="text/javascript">
    4. <!--
    5. jQuery(document).ready(function(){
    6. jQuery("#open").click(function(){
    7. biuuu._ajax("biuuu.php",'do=test','json',biuuu.succfunction,biuuu.failfunction);
    8. });
    9. });
    10. biuuu.succfunction = function(info){
    11. alert(info.message);
    12. }
    13. biuuu.failfunction = function(){
    14. alert('fail');
    15. }
    16. //-->
    17. </script>
    18. <a href="#" id="open">test</a>

    当点击test后,触发ajax提交,实功调用biuuu.succfunction函数,失败调用biuuu.failfunction函数

    三,PHP部分

    1. <?php
    2. $info = array ('message' => 'biuuu is success','bool' => TRUE );
    3. print_r ( json_encode ( $info ) );
    4. exit ();
    5. ?>

    返回一个json数据

    解决方法其实很简单,用传入函数名的方法来解决jQuery.ajax不能实现return值调用问题。

    点我下载 如果解决jQuery.ajax不能实现return值调用问题 实例

  • 相关阅读:
    北航算法作业三
    水库抽样
    python命名空间
    我说
    Fn键
    windows批处理运行java程序
    Java Sound初探
    java.io.IOException: mark/reset not supported
    三层交换机对链路层数据帧的处理
    北航数值分析作业三
  • 原文地址:https://www.cnblogs.com/mokliu/p/2138921.html
Copyright © 2011-2022 走看看