Несколько запросов jQuery Ajax запутываются - PullRequest
0 голосов
/ 01 ноября 2011

Проблемы с некоторыми jQuery ajax.У меня есть три сценария, в которых я отправляю запросы.

  1. Загрузка публикаций пользователя
  2. Перемещение категорий публикаций пользователя вверх или вниз (т.е. перемещение книг над статьями)
  3. Редактирование публикаций пользователя (т. Е. Смена книги на книги для заголовка категории)

После тестирования всех компонентов по отдельности и обеспечения их работы, а также поиска по этому сайту, я вполне уверен, что проблемас запросами 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 ) Это правильно.

Я не могу понять, почему он вкладывает первый массив в третийone.

Просто обратите внимание, эти массивы являются выводом 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);
        }
   });
}

Как всегда, спасибо за любую помощь.

Редактировать: С момента запроса я нашел ответ на вопрос.Это было связано с тем, что оператор print_r($_POST) находился вне оператора if, как это должно было быть.

1 Ответ

0 голосов
/ 02 ноября 2011

Это было связано с тем, что оператор print_r($_POST) был вне оператора if, как это должно было быть.Таким образом, при использовании jQuery.ajax ответ захватывал это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...