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 :

[PHP-JS] Activation liste déroulante (disabled)


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 42
    Par défaut [PHP-JS] Activation liste déroulante (disabled)
    Bonjour à tous,

    Mon problème est relativement simple je pense mais moi pas y'arriver !
    En fait j'ai deux listes déroulantes chargées par un BDD, la deuxième se charge en fonction de la première. Je veux donc tout simplement que la deuxième liste deroulante soit grisée tant qu'aucun choix n'a été fait dans la première.
    J'ai déjà essayé en testant l'index de la première liste mais pas réussi qd même, voila mon code et merci pour votre aide :

    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
     
    	////////////////////////////
    	//1ERE LISTE DEROULANTE//
    	////////////////////////////
     
    $req_marque = mysql_query ("SELECT marque_id, marque_text FROM marque 
    	WHERE outils_id=1 
    	ORDER BY marque_text");
    echo "<form name='guide' method='GET' action='essai.php'>
    <p><select name='marque' onchange='guide.btnsubmit.click();'>
    <option selected value='0'>Sélectionner votre marque</option>";
     
    //Chargement de la liste déroulante des marques
    		while(list($marque_id, $marque_text) = mysql_fetch_row($req_marque)) 
    		{
    			if ($marque_id==$marque) 
    				{ 
    				$sel = "selected"; 
    				}
    			echo "<option $sel value=$marque_id>$marque_text</option>\n";
    			$sel = ""; 
    		}
    echo "</select>";
     
    	/////////////////////////////
    	//2EME LISTE DEROULANTE//
    	/////////////////////////////
     
    //Recherche des types de tronconneuse associée à la marque selectionnée
    $req_type = mysql_query ("SELECT type_id, marque_id, type_text FROM type 
    	WHERE marque_id = $marque 
    	ORDER BY type_text");
    echo "</p><p>
    <select name='type' disabled onchange='guide.btnsubmit.click();'>
    <option selected value='0'>Sélectionner votre modèle</option>";
    	//Chargement de la liste déroulante des types 
    	while(list($type_id, $marque_id, $type_text) = mysql_fetch_row($req_type)) 
    	{
    		if ($type_id==$type) 
    			{
    			$sel = "selected ";
    			}
    		echo "<option $sel value=$type_id >$type_text</option>\n";
    		$sel = "";
    	}	
    echo "</select>";

  2. #2
    Membre émérite Avatar de cadoudal56
    Profil pro
    Inscrit en
    Février 2005
    Messages
    694
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2005
    Messages : 694
    Par défaut
    Et bien passe par javascript....

    Tu mets un evenement OnChange sur la première liste qui vérifie si quelquechose est sélectionné et si c'est le cas tu "active" la seconde liste de sélection....

    Oriente toi vers du javascript, a mon avis la solution passe par là.

    Bonne journée
    cadou

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 42
    Par défaut
    Ok, je voulais passer par onechange mais ca ne marche pas. La deuxième liste déroulante se dégriser à la sélection d'une marque dans la première liste mais du coup elle ne se charger plus via la BDD. Alors peut etre que onechange ne peut gérer qu'un seul événement ?
    Voilà le code que j'avais fait :

    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
     
    ////////////////////////////
    	//1ERE LISTE DEROULANTE//
    	////////////////////////////
     
    $req_marque = mysql_query ("SELECT marque_id, marque_text FROM marque 
    	WHERE outils_id=1 
    	ORDER BY marque_text");
    echo "<form name='guide' method='GET' action='essai.php'>
    <p><select name='marque' onchange='if(this.selectedIndex > 0){this.form.type.disabled = false;} ''guide.btnsubmit.click();'>
    <option selected value='0'>Sélectionner votre marque</option>";
     
    //Chargement de la liste déroulante des marques
    		while(list($marque_id, $marque_text) = mysql_fetch_row($req_marque)) 
    		{
    			if ($marque_id==$marque) 
    				{ 
    				$sel = "selected"; 
    				}
    			echo "<option $sel value=$marque_id>$marque_text</option>\n";
    			$sel = ""; 
    		}
    echo "</select>";
     
    	/////////////////////////////
    	//2EME LISTE DEROULANTE//
    	/////////////////////////////
     
    //Recherche des types de tronconneuse associée à la marque selectionnée
    $req_type = mysql_query ("SELECT type_id, marque_id, type_text FROM type 
    	WHERE marque_id = $marque 
    	ORDER BY type_text");
    echo "</p><p>
    <select name='type' disabled onchange='guide.btnsubmit.click();'>
    <option selected value='0'>Sélectionner votre modèle</option>";
    	//Chargement de la liste déroulante des types 
    	while(list($type_id, $marque_id, $type_text) = mysql_fetch_row($req_type)) 
    	{
    		if ($type_id==$type) 
    			{
    			$sel = "selected ";
    			}
    		echo "<option $sel value=$type_id >$type_text</option>\n";
    		$sel = "";
    	}	
    echo "</select>";

  4. #4
    Membre éprouvé Avatar de galak63
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Par défaut
    Ta requete n'est bien sur pas appelée au premier changement, pour cela il faudrait soit :

    des le depart tu charges tous tes types dans un tableau (ou des) que tu charges lors du changement

    soit tu apelles une fonction qui recharge ta page avec en argument ta ligne selectionnée

  5. #5
    Membre Expert Avatar de Amara
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 688
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 688
    Par défaut
    A mon avis les données sont mal récupérées dans ton onChange. Tu as testé les valeurs ? Essayé de récupérer les données par un getElementById ? Ou comme pour le submit en faisant guide.marque.selectedIndex ?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 42
    Par défaut
    Oui j'ai testé et les données sont bien récupérer et j'ai obtenu le même resultat avec getElementById, de meme j'ai essayé avec guide.marque.selectedIndex mais ca n'a rien donné.

    Est-ce que je peux le mettre faire ma boucle if à l'extérieur du select et comment ?

    Je ne l'est pas préciser mais je débute alors merci pour votre aide.

    ...Benoit...

Discussions similaires

  1. [PHP-JS] Une liste déroulante
    Par amine_en_france dans le forum Langage
    Réponses: 12
    Dernier message: 29/03/2007, 17h15
  2. [PHP-JS] affichage liste déroulante
    Par marie4449 dans le forum Langage
    Réponses: 8
    Dernier message: 23/03/2007, 17h57
  3. [PHP-JS] Deux listes déroulantes dynamiques
    Par zana74 dans le forum Langage
    Réponses: 9
    Dernier message: 29/08/2006, 12h36
  4. [PHP-JS] Firefox - Liste déroulante
    Par Dlfine dans le forum Langage
    Réponses: 7
    Dernier message: 08/06/2006, 09h48
  5. activation liste déroulante sur un checkbox
    Par julio_097 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/08/2005, 15h45

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