JQuery: «Uncaught TypeError: незаконный вызов» при запросе ajax - несколько элементов

У меня есть два элемента выбора, A и B: когда выбранный параметр A изменяется, параметры B должны соответственно обновляться. Каждый элемент в A подразумевает множество элементов в B, это отношение «один ко многим» (A содержит нации, B должно содержать города, расположенные в данной нации).

Функцияdo_ajax следует запустить асинхронный запрос:

function do_ajax(elem, mydata, filename)
{
    $.ajax({
        url: filename,
        context: elem,
        data: mydata,
        datatype: "html",
        success: function (data, textStatus, xhr) {
            elem.innerHTML = data;
        }
    });
}

Чтобы обновить опции B, я добавил вызов функции в A '.onChange событие. Вот функция, которая запускается, когда событие onChange (изA) срабатывает:

function my_onchange(e) // "e" is element "A"
{
    var sel_B = ... ; // get select element "B"

    // I skipped some code here
    // ...

    var data = {
        'mode': 'filter_city',
        'id_A': e[e.selectedIndex]
    };
    do_ajax(city_sel, data, 'ajax_handler.php');
}

}

Я читал вJQuery документы тотdata может быть массивом (пары ключ-значение). Я получаю ошибку, если я положил:

var data = {
        'mode': 'filter_city',
        'id_A': e[e.selectedIndex]
};

Вместо этого я не получаю эту ошибку, если мои данные представляют собой строку:

var data = 'mode=filter_city&id_A=' + e[e.selectedIndex];

Но мне нужна & quot; версия массива & quot; переменной, в моем PHP-коде на стороне сервера.

Uncaught TypeError: Illegal invocation находится в & quot; jquery-1.7.2.min.js & quot; файл, который полностью сжат, поэтому я не могу понять, какая часть кода вызвала ошибку.

Есть ли какие-либо настройки, которые я могу изменить в своем коде, чтобы он принимал данные как ассоциативный массив?

Ответы на вопрос(8)

Ваш ответ на вопрос