problème appel d'un fonction sur onChange

Eléphanteau du PHP | 30 Messages

09 nov. 2006, 15:38

Hello tout le monde !
Voila, j'ai un léger petit problème (et oui, encore).
J'aimerais faire la chose suivante : lorsque l'utilisateur sélectionne une option dans une liste déroulante, un fichier qui permet un contenu dynamique vient s'afficher dans un div.

Donc, j'ai une zôlie fonction Javascript que voila :

Code : Tout sélectionner

<script type="text/JavaScript"> function file(fichier){ if(window.XMLHttpRequest) // FIREFOX xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // IE xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else return(false); xhr_object.open("GET", fichier, false); xhr_object.send(null); if(xhr_object.readyState == 4) return(xhr_object.responseText); else return(false); } function nextlist(){ id=document.getElementById('dates').value; num_salle=document.getElementById('salles').value; <!-- on apelle le fichier affiche_sem.php en passant les valeurs nécessaires (soit le numéro de la semaine et le numéro de la salle) --> if(texte = file("affiche_sem.php?sem="+id+"&sal_num="+num_salle)){ writediv_semaine(texte); } } <!-- on crée un calque --> function writediv_semaine(texte){ document.getElementById('semaine').innerHTML = texte; } </script>
Suivie quelques lignes plus bas, d'un formulaire qui me semble plutôt sexy lui aussi (non, je raconte n'importe quoi là ... :roll: )

Code : Tout sélectionner

<form id="dates" name="dates" method="post" action=""> <label>Date : </label> <select name="date_sem" id="date_sem" onChange="nextlist()" > <!-- On appelle la fonction nextlist --> <?php //ici $i = nb de semaine for ($i=$prec;$i<$futur;$i++){ $date_c=calc_dates($i); ?> <!-- Semaine courante = 0 Si $i = 0 alors, sélectionné par défaut --> <option value="<? echo $i ?>" <? if ($i==0) echo "selected" ?>><?php echo $date_c[0]." au ".$date_c[1]; ?></option> <?php } ?> </select> </form> <!-- Sélection de la salle --> <form id="salle" name="salle" methode="post" action=""> <label>Salle : </label> <select name="select_salle" onChange="nextlist()" > <!-- On appelle la fonction nextlist --> <?php //on affiche toutes les salles disponibles dans la table t_salles while ($row_salles = mysql_fetch_assoc($salles)){ ?> <option value=<?php echo $row_salles['sal_num'] ?>><?php echo $row_salles['sal_nom'] ?></option> <?php } ?> </select> </form>
Finalement mon div attend patiemment son petit fichier tant désiré au coin du feu :

Code : Tout sélectionner

<div id="semaine"></div>
Mon problème héhé ... ça marche pas ! Je parviens à tester le fichier appelé séparément mais impossible de l'afficher sur la page souhaitée. Rien ne se passe. De plus, Firefox ne m'indique aucune erreur et IE me dit qu'il y a une erreur à la ligne 31 au caractère 5, qu'il attend un paramètre. J'avoue ne pas comprendre.

Voila, c'est peut-être une question bête et stupide mais le codding (ou scripting, je sais pas quel terme vous préférez), c'est pas tellement mon truc. Je préfère le visuel. Mais malheureusement, on peut pas toujours choisir :wink:
Et si quelqu'un pourrait me venir en aide, ça serait vraiment sympa.

Merci d'avance !

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 nov. 2006, 18:11

Tu dois avoir une erreur dans la fonction nextList() lorqsue tu fais ceci :

Code : Tout sélectionner

id=document.getElementById('dates').value;
"dates" est un formulaire, il n'a donc pas d'attribut value... "date_sem" serait je pense plus approprié ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 30 Messages

09 nov. 2006, 19:32

arf ! Merci, c'est super cool, ça marche ! \:D/
Je peux enfin faire péter le champagne !