Bonjour à tous,
Je suis confronté à un problème depuis quelques jours sans parvenir à trouver une solution. Je cherche a faire un select dynamique en fonction des résultats d'un select précédent. Cela marche très bien lorsque je teste la page de formulaire en direct. Mais cela ne fonctionne plus lorsque cette page est appelé dans une div.
En gros, j'ai une div_gauche qui contient le menu, et une div_droite qui contient la page correspondante. Le chargement se fait via la fonction suivante :
Le code javascript qui me permet de faire mon select dynamique est inclus sur ma page de recherche, le voici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 function envoieRequete(url,id) { var xhr_object = null; var position = id; if(window.XMLHttpRequest) xhr_object = new XMLHttpRequest(); else if (window.ActiveXObject) xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); // On ouvre la requete vers la page désirée xhr_object.open("GET", url, true); xhr_object.onreadystatechange = function(){ if ( xhr_object.readyState == 4 ) { // j'affiche dans la DIV spécifiées le contenu retourné par le lien document.getElementById(position).innerHTML = xhr_object.responseText; } } // dans le cas du get xhr_object.send(null); }
Je débugge ce truc avec Firebug. Je n'ai aucune erreur qui apparait, la fonction de change n'est apparemment pas appelé du tout. Même des alert javascripts ne s'affichent pas. Il doit y avoir un surchargement quelque part, mais je ne comprends pas ou, et je suis complétement aveugle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $(function(){ $("select#select_societe").change(function(){ $.getJSON("bin/recherche_projetBysociete.php",{id: $(this).val(), ajax: 'true'}, function(j) { var options = ''; alert(j); for (var i = 0; i < j.length; i++) { alert('<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>'); options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>'; } $("#projet").html(options); $('#projet option:first').attr('selected', 'selected'); }) }) })
Si quelqu'un a une idée, je suis preneur.
Partager