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 :

valeur d'un SELECT récalcitrante :(


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de scade
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Par défaut valeur d'un SELECT récalcitrante :(
    Bonjour.
    Je me permet de poster car j'ai un petit soucis. J'espère que vous saurez m'aider.

    Je suis en train de coder un site, et j'ai un formulaire contenant une liste déroulante. A chaque fois que cette liste déroulante change, j'ai une fonction JavaScript qui se lance, récupère la valeur actuelle de la liste déroulante et effectue quelques calculs pour remplir un champ de texte à côté.

    En bon ignorant que j'étais, je m'étais contenté d'écrire
    (cbxJour = nom de ma liste déroulante, inscription = nom du formulaire)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms.inscription.cbxJour.value
    Et sous Firefox ca tournait au poil, aucune erreur...
    Seulement j'ai constaté que sous IE, ca marchait pas du tout.

    Après quelques tests, je me suis donc rendu compte que cela venait de la façon dont je récupérais la valeur de la liste, puisque IE ne récupérait rien.

    J'ai donc pris l'exemple de votre FAQ, et j'ai obtenu:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('cbxJour').options[document.getElementById('cbxJour').selectedIndex].value
    Sous FF ca marche toujours, sous IE ca marche toujours pas!
    Et de plus, la console javascript de FF m'affiche maintenant une erreur:



    Une petite idée? Je cale moi

    D'avance merci : )

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    On peut voir le code de ta liste déroulante ?

    Parce que bon ... :

    (cbxJour = nom de ma liste déroulante, inscription = nom du formulaire)
    [...]
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('cbxJour')
    Un name est différent d'un id.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 156
    Par défaut
    salut

    essaye plutot avec sa : document.inscription.cbxbonjour.value pour ta valeur de liste deroulante.

    et : pour recuperer ta valeur verifie que tu as mis "value" dans tes <option>

    @+

    excuse moi j'ai oublié un truc pour la valeur c'est :


    document.inscription.cbxbonjour[document.inscription.cbxbonjour.selectedindex].value

    decidement ! j'ai egalement oublié le .options

  4. #4
    Membre averti Avatar de scade
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    19
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 19
    Par défaut
    Bonjour!

    @Bisûnûrs : Voila tout le code de la 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
    25
    26
    27
    28
    29
    30
     
    <SELECT name="cbxJour" id="cbxJour" size="1"  tabindex=8 onChange="<?php echo "getADN(".getJourJeu().",".getMoisJeu().",".getAnneeJeu().")"; ?>">
     
    <?php
    $n = 1;
    while($n <= 5)
    {
    $requete = "SELECT NOM_DATE FROM CALENDRIER WHERE TYPE_DATE = 'J' ORDER BY ORDRE_DATE";
    $tabJour = getresQuery($requete);
     
    if((isset($_SESSION["e2Jour"]))&&(isset($_SESSION["e2NumJour"])))
    {
    $info = $_SESSION["e2NumJour"];
    $info2 = $_SESSION["e2Jour"];
    }
     
    while($row = mysql_fetch_assoc($tabJour))
    {
    if(($row["NOM_DATE"] == $info2)&&($n == $info))
    {
    $select = "SELECTED";
    }
    else{$select = "";}
     
    echo"<OPTION ".$select.">".$n." - ".$row["NOM_DATE"]."</OPTION>";
    }
    $n++;
    }
    ?>
    </SELECT>
    Voila... donc pour expliquer un peu, la fonction getADN du onChange c'est bien entendu la fonction JavaScript dont je vous parlais.

    Ma liste déroulante doit afficher les 25 jours d'un calendrier un peu special, contenant 5 semaines de 5 jours.

    Donc j'effectue une requete sql qui recupere les nom des jours, puis je boucle sur le tableau pour ajouter une semaine, je fais ca cinq fois.

    Les variables de session, c'est juste des variables dans lesquelles j'ai sauvegardé la valeur de la liste. Ainsi, si la page est rechargée (validation puis retour par exemple, ou erreur dans la validation), cela permet de mettre un SELECTED sur la valeur que l'utilisateur avait choisie.


    @eveilside : J'ai eu du mal à suivre là... Je pense que tu voulais que je mette ça?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.inscri2.cbxJour.options[document.inscri2.cbxJour.selectedIndex].value
    Si c'est le cas, alors j'ai toujours le même soucis. Ca fonctionne pas sous IE et ca amrche sous FF avec le même message d'erreur.

    Si ca se trouve ca vient pas de la façon dont je récupère la valeur mais du code de la liste alors?


    PS. J'ai un doute maintenant... c'est document.forms.nomduformulaire ou juste document.nomduformulaire?

  5. #5
    Membre confirmé
    Inscrit en
    Février 2007
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 156
    Par défaut re!
    Pour le formulaire mo j'ai toujours fait document.formulaire.

    Sinon ben c'est ce que je disais pour ton code , ta pas de value="ta_valeur"
    dans tes <option>.
    tu as mis : <option>......</option>
    met : <option value="la valeur">la valeur</option>

    @+

  6. #6
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    T'as le droit de nous mettre le code généré, pas le code PHP ..

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

Discussions similaires

  1. [MySQL] Pb d'insertion d'une valeur de champ select dans une Bdd
    Par Mimisator dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 20/10/2005, 18h51
  2. selectionner automatiquement plusieurs valeurs ds un select
    Par shadowR dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 02/09/2005, 16h00
  3. Vérifier la valeur d'un <select> <opt...> </s
    Par Sigur ros dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 08/08/2005, 16h40
  4. [sgbd] Recuperer valeurs d'un Select dans un tableau
    Par Mu_Belier dans le forum SGBD
    Réponses: 16
    Dernier message: 27/05/2005, 15h46
  5. récupérer la valeur d'un select dans un autre
    Par alexander dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 16/03/2005, 19h43

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