J'ai deux de sélectionner des éléments, A et B: lorsque l'option sélectionnée changements, B options doivent être mis à jour en conséquence. Chaque élément dans Un implique de nombreux éléments de B, c'est un un-à-plusieurs relations (contient des nations unies, B doit contenir des villes situées dans les pays donné).
La fonction do_ajax
doit exécuter la requête asynchrone:
function do_ajax(elem, mydata, filename)
{
$.ajax({
url: filename,
context: elem,
data: mydata,
datatype: "html",
success: function (data, textStatus, xhr) {
elem.innerHTML = data;
}
});
}
Afin de mettre à jour B options j'ai ajouté une fonction à appeler Un de l' onChange
événement. Voici la fonction qui s'exécute lors de l'événement onChange (de A
) est déclenchée:
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');
}
}
J'ai lu dans JQuery docs qu' data
peut être un tableau (paires clé-valeur). Je reçois le message d'erreur si j'ai mis:
var data = {
'mode': 'filter_city',
'id_A': e[e.selectedIndex]
};
Au lieu de cela, je n'ai pas ce message d'erreur si mes données est une chaîne de caractères:
var data = 'mode=filter_city&id_A=' + e[e.selectedIndex];
Mais j'ai besoin de la "matrice de la version" de la variable, de mon côté serveur php code.
L' Uncaught TypeError: Illegal invocation
, est située dans le jquery-1.7.2.min.js" fichier, ce qui est compressé, donc je n'arrivais pas à savoir quelle partie du code a déclenché l'erreur.
Est-il un paramètre que je peux changer dans mon code afin qu'il accepte les données d'un tableau associatif?