JQuery: 'Error de tipo no capturado: Invocación ilegal' en solicitud ajax - varios elementos

Tengo dos elementos de selección, A y B: cuando la opción seleccionada de A cambia, las opciones de B deben actualizarse en consecuencia. Cada elemento en A implica muchos elementos en B, es una relación de uno a muchos (A contiene naciones, B debe contener ciudades ubicadas en la nación dada).

La funcióndo_ajax Debe ejecutar la solicitud asíncrona:

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

Para actualizar las opciones de B, he añadido una llamada a la función en AonChange evento. Aquí está la función que se ejecuta cuando el evento onChange (deA) se activa:

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');
}

}

He leído enJQuery docs esedata puede ser una matriz (pares de valores clave). Me sale el error si pongo:

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

En cambio, no recibo ese error si mis datos son una cadena:

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

Pero necesito la "versión de matriz" de la variable, en mi código php del lado del servidor.

losUncaught TypeError: Illegal invocation está ubicado en el archivo "jquery-1.7.2.min.js", que está todo comprimido, por lo que no pude averiguar qué parte del código generó el error.

¿Hay alguna configuración que pueda cambiar en mi código para que acepte datos como una matriz asociativa?

Respuestas a la pregunta(8)

Su respuesta a la pregunta