多个jQuery Ajax请求变得混乱

时间:2011-11-01 18:44:09

标签: php jquery ajax post

遇到一些jQuery ajax的问题​​。我有三种情况可以发送请求。

  1. 加载用户的出版物
  2. 向上或向下移动用户的出版物类别(即将书籍移到文章之上)
  3. 编辑用户的出版物(即将书籍更改为类别标题的书籍)
  4. 在单独测试所有组件并让它们工作以及搜索此站点后,我非常确定问题在于ajax请求。

    通过按钮点击调用请求。 (即<button onclick="edit_pubs('userid_modifies_action_id');">edit</button>

    我得到的问题是,在页面上发送到数组的数据如下所示:

    1. Array ( [action] => load [userid] => username )这是正确的
    2. Array ( [action] => load [userid] => Array ( [userid] => username [modifies] => c [action] => dn [id] => Book ) )这是不正确的
    3. Array ( [userid] => username [modifies] => c [action] => ed [id] => Book )这是正确的。
    4. 我无法弄清楚为什么它将第一个数组嵌入第三个数组中。

      请注意,这些数组是print_r ( $_POST );之前die;的输出。

      我为$.ajaxSetup设置了以下设置:

      $.ajaxSetup({
          url: "ajax_admin_load_pubs.php",
          global: false,
          type: "post"
      });
      

      以下是ajax功能:

      function modify_pubs(action) {
          var action_list = action.split('_');
          $.ajax({
              data : {'kuoid' : action_list[0], 'modifies' : action_list[1],
                      'action' : action_list[2], 'id' : action_list[3]},
                  dataType : "text",
                  success : function(usr) {load_pubs(usr);}
          });
      }
      
      function load_pubs(usr) {
          $.ajax({
              // Tested data in either order, the array always appends itself to kuoid.
              data : {'action' : 'load', 'kuoid' : usr},
              dataType : "text",
              success : function(response) {  
                  $('#pub-mod-list').html(response);
              }
          });
      }
      
      function edit_pubs(action) {
          var action_list = action.split('_');
          $.ajax({
              data : {'kuoid' : action_list[0], 'modifies' : action_list[1],
                      'action' : action_list[2], 'id' : action_list[3]},
              dataType : "text",
              success : function(response) {
                  $('#pub-mod-list').html(response);
              }
         });
      }
      

      一如既往,感谢您的帮助。

      编辑:自问以来,我找到了问题的答案。这是因为在if语句之外有一个print_r($_POST)语句,就像它应该的那样。

1 个答案:

答案 0 :(得分:0)

这是因为if语句之外的print_r($_POST)语句应该是这样的。因此,当使用jQuery.ajax时,响应正在捕获它。