J'ai un formulaire simple qui a une liste (liste déroulante générée à partir d'une BD), quand un utilisateur fait une sélection, la sélection est imprimée sur l'écran. Le problème que j'ai est que si j'utilise jquery pour appeler la fonction php qui génère la liste quand la page est en chargement, la liste ne fonctionnera pas, mais si j'ajoute le code directement dans le html cela fonctionnera
Quand la page charge la liste déroulante est appelée comme ceci: La liste générée par DB ne fonctionne pas lorsqu'elle est créée en utilisant jquery
$('#createDropDown').ready(function(){ id = $('#createDropDown').val(); // this calls a php function that creates a dropdown list from the DB // the dropdown's id = 'categoryList' xajax_addDropdownMenu(id);
});
la liste est générée avec l'id = « CatégorieListe », et il est ajouté correctement au createDropDown DIV appelé « createDropDown ». Jusqu'à maintenant tout semble bon! Le problème vient quand une sélection est faite sur la liste nouvellement créée (CatégorieListe) un autre Jquery est appelé
lorsqu'une sélection est effectuée le code suivant doit être appelé:
$('#categoryList').change(function() {
bucket_id = $('#categoryList').val();
var selected = "";
// get selected value from the dropdown menu
$("#categoryList option:selected").each(function() {
selected += $(this).text() + " ===>";
});
// if we have a valid ID print it in the screen.
if(bucket_id!= 0)
{
xajax_addCategory(selected);
}
});
xajax_addCategory (sélectionné); imprime l'élément sélectionné à l'écran. mais ne fonctionne pas.
NOTE: Cela fonctionne bien si j'appelle la fonction php pour générer la liste déroulante directement dans le fichier main.html, donc je sais que la liste est générée avec l'ID correct et cela fonctionne, mais quand j'utilise Jquery pour appelle la méthode php en charge, ça ne marche pas ... et je ne comprends pas pourquoi.
PS Je suis un natif de Jquery, donc quelques idées seraient les bienvenues!
MISE À JOUR:
J'ai essayé de créer une reliure après la liste est générée comme ceci:
$('#createDropDown').ready(function()
{
id = $('#createDropDown').val();
xajax_addDropdownMenu(id);
$("#categoryList0").bind('change',function()
{
console.log('The code goes here!!');
});
});
où categoryList0 est l'ID de la nouvelle liste. la classe de la liste est CatégorieListe
mais je suis toujours bloqué, car il est toujours pas entrer dans la fonction quand il y a un changement ...
et comment je fais ça? comment puis-je créer la liaison après la création de la liste? – Onema
Vous devez vous connecter à xajax et faire exécuter le code dans votre deuxième extrait lorsqu'il a ajouté la liste. Puisque je ne sais pas xajax je ne peux pas vous dire comment. – svinto