IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Charger liste déroulante en fonction d'un choix dans une autre liste déroulante


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 36
    Points : 24
    Points
    24
    Par défaut Charger liste déroulante en fonction d'un choix dans une autre liste déroulante
    Bonjour à tous

    Merci de m'accorder un peu de votre temps.

    Je souhaite charger une listbox en fonction du choix réaliser dans une première listbox.

    Je m'explique, dans la première listbox, je dois choisir un bâtiment parmi tout les bâtiments puis en fonction de choix dans la première listbox charger la deuxième avec les salles de ce bâtiment. (Il existe derrière donc une base de donnée mysql avec des tables en relation pas de soucis de ce coté la )

    Voici donc mon petit bout de code:

    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
    23
     
    <form method="POST" action="">
                            <select name='liste_batiment'>".chr(13);
                            <?php
                                $sql="select ID_BATIMENT , NOM_BATIMENT from batiment";
                                $result=mysql_query($sql);
                                while( $row = mysql_fetch_array($result) ){
                                    echo("<option value='".$row["ID_BATIMENT"]."'>".$row["NOM_BATIMENT"]."</option>".chr(13));
                                } 
                            ?>
                            </select>
                            </form>
                            <u>Salle*:</u>
                            <select name='liste_salle'>".chr(13);
                            <?php
                                $bat=$_POST['liste_batiment'];
                                $sql="select ID_SALLE , NOM_SALLE from salle WHERE ID_BATIMENT='".$bat."'";
                                $result=mysql_query($sql);
                                while( $row = mysql_fetch_array($result) ){
                                    echo("<option value='".$row["ID_SALLE"]."'>".$row["NOM_SALLE"]."</option>".chr(13));
                                }  
                            ?>
                            </select>
    Le problème est que je pense que le code est lu juste au moment du chargement de la page et donc une fois que je fais ma sélection dans la listbox des bâtiments rien ne dis a la listbox des salles de se charger.

    Si quelqu'un peut m'aider il est le bienvenu

    Merci d'avance

  2. #2
    Membre chevronné Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Points : 1 895
    Points
    1 895
    GNAP !

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    Re alors merci pour tes liens ca m'a bien aidé

    j'ai repris le bout de java script et je l'ai refait a ma sauce mais ca marche pas...

    je met le code au cas où quelqu'un voit ma betise

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    <script type='text/javascript'>
     
    			function getXhr(){
                                    var xhr = null;
    				if(window.XMLHttpRequest) // Firefox et autres
    				   xhr = new XMLHttpRequest();
    				else if(window.ActiveXObject){ // Internet Explorer
    				   try {
    			                xhr = new ActiveXObject("Msxml2.XMLHTTP");
    			            } catch (e) {
    			                xhr = new ActiveXObject("Microsoft.XMLHTTP");
    			            }
    				}
    				else { // XMLHttpRequest non supporté par le navigateur
    				   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    				   xhr = false;
    				}
                                    return xhr;
    			}
     
    			/**
    			* Méthode qui sera appelée sur le click du bouton
    			*/
    			function go(){
    				var xhr = getXhr();
    				// On défini ce qu'on va faire quand on aura la réponse
    				xhr.onreadystatechange = function(){
    					// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
    					if(xhr.readyState == 4 && xhr.status == 200){
    						leselect = xhr.responseText;
    						// On se sert de innerHTML pour rajouter les options a la liste
    						document.getElementById('salle').innerHTML = leselect;
    					}
    				}
     
    				// Ici on va voir comment faire du post
    				xhr.open("POST","ajaxSalle.php",true);
    				// ne pas oublier ça pour le post
    				xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    				// ne pas oublier de poster les arguments
    				// ici, l'id de l'auteur
    				sel = document.getElementById('batiment');
    				idbatiment = sel.options[sel.selectedIndex].value;
    				xhr.send("ID_BATIMENT="+idbatiment);
    			}
    		</script>
     
     <form>
                                <label>Batiment*:</label>
                                <select name='batiment' id='batiment' onchange='go()'>
                                    <option value='-1'>Aucun</option>
    				<?php
                                        $sql="select ID_BATIMENT , NOM_BATIMENT from batiment ORDER BY NOM_BATIMENT";
                                        $result=mysql_query($sql);
                                        while( $row = mysql_fetch_assoc($result) ){
                                            echo "<option value='".$row["ID_BATIMENT"]."'>".$row["NOM_BATIMENT"]."</option>";
                                        }
    				?>
    				</select>
    				<label>Salle*:</label>
    				<div id='salle' style='display:inline'>
    				<select name='salle'>
    					<option value='-1'>Choisir un batiment</option>
    				</select>
    				</div>
                            </form>

    ajaxSalle.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
    echo "<select name='salle'>";
    	if(isset($_POST["ID_BATIMENT"])){
                mysql_select_db("gestion_ticket");
                $sql="select ID_SALLE , NOM_SALLE from salle WHERE ID_BATIMENT=".$_POST["ID_BATIMENT"]." ORDER BY NOM_SALLE";
                $result=mysql_query($sql);
                while( $row = mysql_fetch_assoc($result) ){
            	echo"<option value='".$row["ID_SALLE"]."'>".$row["NOM_SALLE"]."</option>";
                }
    	}
    	echo "</select>";
     
    ?>

  4. #4
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 36
    Points : 24
    Points
    24
    Par défaut
    C'est bon c'est résolu, le problème venait de mon MVC et la connection a la BDD etait fermé lorsque le ajaxSalle.php était appelé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 19
    Dernier message: 11/06/2012, 14h36
  2. Réponses: 0
    Dernier message: 09/09/2008, 21h53
  3. Réponses: 3
    Dernier message: 13/08/2008, 14h36
  4. Réponses: 2
    Dernier message: 23/06/2008, 16h24
  5. Rafraichir un formulaire en fonction d'un choix dans une liste déroulante
    Par talondachil dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/01/2008, 23h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo