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 :

onchange sur un <select> ne fonctionne pas


Sujet :

JavaScript

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut onchange sur un <select> ne fonctionne pas
    hello

    je n'arrive pas à voir ce qui cloche là dedans, votre oeil averti devrait flasher de suite.

    très basique comme code:
    1.) afficher dans un select une liste d'utilisateurs
    2.) au clic, afficher ses data

    le code PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    $users=getUsers();
     
    <select onchange="JavaScript:afficherDataUser()" name="users_list" id="users_list" size="<?php echo count($users); ?>">
    	<?php
                    for ($i=0; $i<count($users); $i++)
                    {
                            echo "<option value=\"" . $i . "\">" . $users[$i]['id'] . "</option>";
                    }
            ?>
    </select>
    le code JS
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <script type="text/javascript">
    	function afficherDataUser()
    	{
                alert('check');
            }
    </script>
    symptômes
    le select se rempli bien avec mes users MAIS lors de la sélection d'un nom, on ne passe pas dans afficherDataUser() puisque je n'ai pas l'alerte...

    pourtant la syntaxe semble bonne(??)

    voilà, voilà...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Ca fonctionne, pourtant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="afficherDataUser();"
    N.B. PAS DE CODE PHP dans ce forum !
    Seul le code html généré est utile ! (=> "Afficher la source")

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    j'ai essayé les deux oui
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="afficherDataUser();"
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    onchange="JavaScript:afficherDataUser()"
    mais sans succès!

    c'est bien pour ça que je ne capte pas, pour moi, et donc pour toi aussi, la syntaxe est pourtant bonne!

    ça n'a pas de sens!

    Html généré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Liste des utilisateurs existants:<br/><br/>
    <select onchange="afficherDataUser();" name="users_list" id="users_list" size="3">
    	<option value="0">toto</option>
            <option value="1">tata</option>
            <option value="2">titi</option>
    </select>
    <script type="text/javascript">
    	function afficherDataUser()
    	{
                 alert('check'); 
    	}
    </script>
    EDIT: idem pour FF & IE

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Par défaut
    Ce code fonctionne : http://jsfiddle.net/NpFVV/

    Regarde la console d'erreur Javascript, ça doit venir d'autre chose dans ta page

  5. #5
    Invité
    Invité(e)
    Par défaut
    Quel est le Html généré COMPLET ?

    Car comme dit Mulder SylvainPV :
    "La vérité est ailleurs..."

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    je rechargeais bien ma page avec CTRL+F5 à chaque fois, pour éviter le cache.......... mais j'ai fini par le vider ce ****** de cache et maintenant c'est bon!

    tu parles d'un "bug" à la con..............

    merci en tout cas.

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    question complémentaire cela-dit:

    soit le code qui mélange JS (script) & PHP ($users)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script type="text/javascript">
    	function afficherDataUser(user_idx)
    	{
    		alert('indice = ' + user_idx);
    		alert('test: ' + '<?php echo $users[0]['id']; ?>' + ' ' + '<?php echo $users[0]['pass']; ?> ');
    	}
    </script>
    alors comment récupérer $users[user_idx] (pour le test je n'affiche que $users[0]...) puisque la couleur noire représente du PHP et le bleu du JS?

    le but:
    -> afficher les data (login, pass, date) complète du compte utilisateur cliqué
    -> soit $users[user_idx]['id'], $users[user_idx]['pass'], $users[user_idx]['date']

    ou y-a-t-il moyen de faire plus simplement?

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Tu ne peux pas les passer en paramètre de la fonction et gérer ses valeurs lors de la génération de la page pour son appel?

    Si ces valeurs sont liées avec user_idx, tu peux les chercher sur le serveur en utilisant AJAX.

    A+.

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    Heu...... tu peux développer? un exemple pour illustrer?
    pas un pro du JS moi...

    EDIT: en fait je viens de trouver beaucoup plus simple:

    1.) <option>: je passe à value une chaine "login|pass|date"

    2.) et je split cette chaine (séparateur = '|') dans la fct JS pour récupérer mes 3 champs distincts

    non?

  10. #10
    Invité
    Invité(e)
    Par défaut
    Ajax :
    => Les meilleurs cours et tutoriels AJAX
    Dont : Web 2.0, allez plus loin avec AJAX et XMLHttpRequest

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select onchange="afficherDataUser(this.value);" name="users_list" id="users_list" size="<?php echo count($users); ?>">
    	<?php
                    for ($i=0; $i<count($users); $i++)
                    {
                            echo "<option value=\"" . $users[$i]['id'] . "\">" . $users[$i]['id'] . "</option>";
                    }
            ?>
    </select>
    <div id="affichage_ajax"></div>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type="text/javascript">
    	function afficherDataUser(user_idx)
    	{
    		alert('indice = ' + user_idx);
    		// ICI, on peut récupérer toutes les infos de cet user via AJAX
    		// puis afficher la réponse dans le div "affichage_ajax"
     
    	}
    </script>

  11. #11
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 535
    Par défaut
    ok, merci, je vais creuser la question.

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

Discussions similaires

  1. SQL select like ne fonctionne pas sur une base csv
    Par MisterJeanP dans le forum MkFramework
    Réponses: 2
    Dernier message: 07/08/2014, 22h19
  2. [AJAX] OnChange sur balise HTML <select> ?
    Par [ZiP] dans le forum jQuery
    Réponses: 3
    Dernier message: 22/08/2012, 22h20
  3. Select qui ne fonctionne pas sur script VBS
    Par jamy69 dans le forum VBScript
    Réponses: 4
    Dernier message: 24/05/2012, 21h07
  4. Opacité sur bloc Div - Incompatibilité et ne fonctionne pas
    Par killprog dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 15/03/2006, 15h31
  5. un count sur une jointure et ca ne fonctionne pas
    Par elbronziero dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/10/2004, 11h23

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