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

JavaScript Discussion :

evenement onload sur 2 liste liées a une base de données


Sujet :

JavaScript

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Points : 118
    Points
    118
    Par défaut evenement onload sur 2 liste liées a une base de données
    Bonjour a tous,
    J'ai crée deux listes déroulantes reliées a des base de donées, la deuxième dépendante de la première, j'ai d'abord utilisé l'évènement onchange pour que la seconde liste s'actualise lorsque l'on modifie le choix dans la première mais en faite je voudrais aussi éxecuter la fonction lors du chargement de la page pour éviter a l'utilisateur d'avoir a tout ressaisir, le problème c'est que mon événement onload ne marche pas: rien ne ce passe. quelqu'un aurait-il une idée pour que la liste numéro 2 prennent se remplisse dès le chargement en fonction de la valeur par defaut de la première liste.
    voici mon code source:
    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
     
    <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;
    }
    function go(){
    	var xhr = getXhr();
    	xhr.onreadystatechange = function()
    	{
    		if(xhr.readyState == 4 && xhr.status == 200)
    		{
    			leselect = xhr.responseText;
    			document.getElementById('techno').innerHTML = leselect;
    		}
    	}	
    	xhr.open("POST","ajaxTechno.php",true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	sel = document.getElementById('secteur');
    	secteur = sel.options[sel.selectedIndex].value;
    	xhr.send("secteur="+secteur);
    	}
    </script>
    Les fonctions JavaScripts


    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
    <label>Secteur</label>
    <select name='secteur' id='secteur' onload='go()' >
    	<option value='-1'>Aucun</option>
    	<?php
            $res = mysql_query("SELECT * FROM secteur ORDER BY NOMSECTEUR");
            while($row = mysql_fetch_assoc($res))
            {
                    if((isset($_SESSION['secteur']) and $_SESSION['secteur']==$row["NUMSECTEUR"]))
                    {
                            echo "<option value='".$row["NUMSECTEUR"]."' selected='selected'>".$row["NOMSECTEUR"]."</option>";
                    }
                    $form='secteur';
                    $selection=choixParDefaut($row["NUMSECTEUR"], $form);
                    echo "<option value='".$row["NUMSECTEUR"]."' >".$row["NOMSECTEUR"]."</option>";
            }
    ?>
    </select>
    La premiere liste


    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
    <?php
    	session_start();
    	echo "<select name='techno'>";
    	if(isset($_POST["secteur"])){
    		mysql_connect("localhost","root","");
    		mysql_select_db("maquette_refcost");
    		$res = mysql_query("SELECT NUMTECHNO, NOMTECHNO FROM techno 
    			WHERE NUMSECTEUR=".$_POST["secteur"]." ORDER BY NOMTECHNO");
    		while($row = mysql_fetch_assoc($res))
    		{
    			if(isset($_SESSION['techno'])and $_SESSION['techno']==$row["NOMTECHNO"])
    			{
    				echo "<option value='".$row["NUMTECHNO"]."'selected='selected'>".$row["NOMTECHNO"]."</option>";
    			}
    			else
    			{
    				echo "<option value='".$row["NUMTECHNO"]."'>".$row["NOMTECHNO"]."</option>";
    			}
    		}
    	}
    	echo "</select>";
    ?>
    </body>
    </html>
    La deuxieme liste



    Merci d'avance pour vos proposition.

  2. #2
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    tu dois en premier lieu affecter une valeur à ta première liste ( donc cela se fera via php je présume ) ou au load de la page en javascript puis appeler ta méthode ajax :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload = "go();">
    est ton ami fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes

    Premier ministre du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts )

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 176
    Points : 118
    Points
    118
    Par défaut
    Merci beaucoup pour cette réponse Rapide, précise et efficace. sa marche parfaitement. Bonne Journée.

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

Discussions similaires

  1. Inserer variable liste liée dans une base de données
    Par cobra85 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 10/05/2014, 17h29
  2. liste déroulante avec une base de données
    Par Jimmy72_ dans le forum Zend_Form
    Réponses: 11
    Dernier message: 04/04/2011, 12h48
  3. [Sharepoint WSS 3.0] liste et jointure à une base de données
    Par chouquette3000 dans le forum SharePoint
    Réponses: 0
    Dernier message: 08/02/2011, 17h57
  4. Réponses: 3
    Dernier message: 04/05/2010, 19h06

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