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

AJAX Discussion :

[AJAX] Garder sélection liste déroulante


Sujet :

AJAX

  1. #1
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut [AJAX] Garder sélection liste déroulante
    Bonjour,

    je n'ai pas trouvé comment faire pour garder la sélection sur une liste déroulante (j'utilise de l'Ajax) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select id='liste' name='liste' onchange='tri_liste();'>
    	<option value='-1'> Tous </option>
    	<?php
            $r1 = mysql_query("select valeur from table group by valeur");
            while($row = mysql_fetch_array($r1)){
            echo "<option value='".$row['valeur']."'>".$row['valeur']."</option>";
            } 
           ?></select>
    Et voici la fonction JS 'tri_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
    function tri_liste(){
    var xmlHttp = xhr()
    var reponse = document.getElementById('div');
    var selectEsp = document.getElementById('valeur');
    var selectedEspece = selectEsp.options[selectEsp.selectedIndex].value;
    if (selectedEspece=='-1'){ 
    	reponse.innerHTML = '';
    	}	
    	else {
    var url = "page.php?";
    var data = "valeur="+selectedEspece; url +=data;
    xmlHttp.open("get",url,true);
    xmlHttp.onreadystatechange=function()
    {
    if(xmlHttp.readyState==4 && xmlHttp.status==200) 
    {
    reponse.innerHTML = xmlHttp.responseText;
    	}
    }
    xmlHttp.send(null);
    	}
    }

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par arthuro45 Voir le message
    je n'ai pas trouvé comment faire pour garder la sélection sur une liste déroulante
    fais voir ce que tu as tenté et on essayera d'adapter ...

    A+

  3. #3
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    J'ai tenté ça dans option :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <select id='liste' name='liste' onchange='tri_liste();'>
    	<option value='-1'> Tous </option>
    	<?php
    	$r1 = mysql_query("select valeur from table group by valeur");
    	while($row = mysql_fetch_array($r1)){
    	echo "<option value='".$row['valeur']."' echo 'selected'>".$row['valeur']."</option>";
            } 
           ?></select>

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    C'est donc du PHP

    Sur le principe :
    Il faut que tu ais envoyé la value sélectionnée au serveur.
    Dans ta boucle, il ne faut générer le "selected" que si $row['valeur'] est égale à cette value envoyée à la page ...

    A+

  5. #5
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Ca fonctionne, voici la nouvelle version :

    En admettant que la réponse du serveur via Ajax soit : $valeur=$_GET["valeur"];

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select id='liste' name='liste' onchange='tri_liste();'>
    		<option value='-1'> Tous </option>
    		<?php
                         $r1 = mysql_query("select valeur from commande group by valeur");
                         while($row = mysql_fetch_array($r1)){
                         echo "<option value=\"".$row['valeur']."\"";
                           if($valeur==$row['valeur']) { echo 'selected'; }
                               echo ">".$row['valeur']."</option>";
                                } ?></select>
    Peux-tu me dire si j'utilise correctement les ' et " ? Merci

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Citation Envoyé par arthuro45 Voir le message
    Peux-tu me dire si j'utilise correctement les ' et " ? Merci
    Et non, je ne peux pas te dire, n'étant pas PHPiste.

    Par contre, si tu colles ici le code généré, on verra tout de suite

    A+

  7. #7
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Voici le code source généré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <select id='liste' name='liste' onchange='tri_liste();'>
    			<option value='-1'> Tous </option>
    				<option value="valeur">valeur</option>

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Si tu as bien un </select> à la fin de tout ça, c'est que tout est bon

    A+

  9. #9
    Membre actif Avatar de arthuro45
    Profil pro
    Développeur du dimanche
    Inscrit en
    Juillet 2009
    Messages
    602
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur du dimanche

    Informations forums :
    Inscription : Juillet 2009
    Messages : 602
    Points : 265
    Points
    265
    Par défaut
    Oui j'ai bien le </select> à la fin.

    J'ai une autre question mais ça concerne du PHP. Je vais poster la-bas

    Merci de ton aide.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/07/2007, 16h57
  2. [AJAX] lier deux listes déroulantes alimenté par une base de données (Mysql)
    Par arnaudperfect dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/04/2007, 02h06
  3. [AJAX] Lier une liste déroulant à un champ texte
    Par arnaudperfect dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 13/04/2007, 15h50
  4. Sélection liste déroulante puis affichage de text box
    Par dolu007 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 11/11/2006, 01h03
  5. garder une liste déroulante ouverte
    Par zola dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 08/05/2006, 22h57

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