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 :

[Javascript] problème de script


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 72
    Par défaut [Javascript] problème de script
    Bonjour,

    Voilà, j'ai un script très court (quelques lignes) et qui ne fonctionne pas.

    Je suis sûr qu'il s'agit de trois fois rien, mais je suis dessus depuis ce matin, et je ne vois pas . Le pire, c'est que le même code sur une autre page avec une autre variable fonctionne très bien.

    En bref : j'ai un formulaire qui comprends, entre autres, un menu déroulant généré par un code PHP :

    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
        mysql_connect($host, $username) or die("Impossible de se connecter :  " . mysql_error());
     
        mysql_select_db($bdd_name);
     
        $Specialite = mysql_query('SELECT Specialite FROM Specialite ORDER BY Specialite');
        echo '<select name="Specialite" tabindex="20" onblur="javascript : Specialite()" >'; // appel de la fonction javascript qui bug
     
        while ($spec = mysql_fetch_array($Specialite))
        {
            if ($spec['Specialite']=='--- Spécialité ---')
            {
                echo '<option value='.$spec['Specialite'].' selected="selected">'.$spec['Specialite'].'</option>';
            }
            else
            {
                echo '<option value="'.$spec['Specialite'].'">'.$spec['Specialite'].'</option>';
            }
        }
        echo '</select>';
     
        mysql_free_result($Specialite);
        mysql_close();
    ?>

    Avant de passer à la suite, je me rends compte en relisant que je risque fort de me planter à force d'appeler le menu déroulant, la table, l'item et la fonction javascript "Specialite"...


    Maintenant, voici le script qui pose problème :


    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
    function Specialite()
    {
            var spec = window.document.forms[1].Specialite.value;
     
            if (spec != '---')
            {
                    if (spec == '--- Autre ---')
                    {
                        window.document.forms[1].Specialite_Medecin.value = 'Saisir la spécialité';
                    }
                    else
                    {
                        window.document.forms[1].Specialite_Medecin.value = spec;
                    }
            }
            else
            {
                window.document.forms[1].Specialite_Medecin.value = 'Choisissez une spécialité';
            }
    }

    Normalement, en perdant le focus du menu déroulant, la fonction renvoie le choix ou un message d'erreur dans la zone de texte suivante (ayant le nom très original de : "Specialite_Medecin" ). Et là, ça ne marche pas.

    Voilà. J'ai essayé de faire court. Si vous n'êtes pas perdu dans mes explications, pourriez-vous, SVP, m'aider à trouver où ça coince ?

    Merci d'avance,

    Très cordialement.

    PS : j'ai aussi essayé de remplacer "window.document.forms[1].Specialite.value" par "window.document.getElmentById('formulaire')" après avoir attribué un id à mon formulaire, mais ça ne fonctionne toujours pas.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 442
    Par défaut
    Bonjour, peut-être faut-il remplacer onblur par onchange ?

  3. #3
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    window.document.forms[1].Specialite_Medecin.value = 'Saisir la spécialité';
    Je ne vois nulle part dans ton code HTML un objet ayant l'id "Specialite_Medecin". Donc cet objet ne peut pas avoir de valeur ..

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 72
    Par défaut
    Merci pour vos réponses très rapides.

    Citation Envoyé par Jung
    Bonjour, peut-être faut-il remplacer onblur par onchange ?
    je viens de tester, ça ne marche pas non plus.

    Citation Envoyé par BisounoursJos
    Je ne vois nulle part dans ton code HTML un objet ayant l'id "Specialite_Medecin". Donc cet objet ne peut pas avoir de valeur ..
    Désolé, je n'ai pas mis tout le code HTML (juste le code PHP qui renvoie le menu déroulant). J'ai bien un input text appelé "Specialite_Medecin" à la suite. En revanche, Specialite_Medecin est attribué à l'attribut "name" et non "id". Peut-être que cela viendrait de là ?

    Citation Envoyé par stanford
    Le debugger de firefox te dis quoi??
    Je ne sais pas si je regarde bien où il faut, mais il me dit "Specialite is not a function". J'ai du mal nommer ma fonction.

    Citation Envoyé par stanford
    sinon essaye de mettre des alert un peu partout, puis de tester l'existence de tes objets, ou alors un problème de casse peut etre?
    Je viens de tester le code que tu me proposes (avec les alertes) ==> rien. La fonction ne semble même pas être exécutée.

    Ce que je ne comprends pas, c'est que sur la page html précédente, j'ai exactement la même chose (même code php pour un autre menu déroulant, même fonction javascript, évidemment avec les noms de variables et de formulaires correspondants). Et sur cette page, ça marche très bien.

    Edit : je viens d'installer le debugger Fx. Je ne sais pas comment il fonctionne. Je regarde et je reviens...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 72
    Par défaut
    Ca y est !!!

    Il s'agissait en effet de la casse : le nom de ma fonction commençait par une majuscule. Si j'écris ma fonction sous le nom "specialite()" (avec une minuscule), ça marche.

    Mille mercis pour votre aide.

    @+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 32
    Par défaut
    Le debugger de firefox te dis quoi??


    sinon essaye de mettre des alert un peu partout, puis de tester l'existence de tes objets, ou alors un problème de casse peut etre?

    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
    function Specialite() {
            if (document.getElementById("Specialite")) {
            var spec = document.getElementById("Specialite").value;
     
            alert('spec='+spec);
     
            if (spec != '---')
            {
                    if (spec == '--- Autre ---')
                    {
                       document.getElementById("Specialite_Medecin").value = 'Saisir la spécialité';
                    }
                    else
                    {
                        document.getElementById("Specialite_Medecin").value = spec;
                    }
     
            }
            else
            {
                window.document.getElementById("Specialite_Medecin").value = 'Choisissez une spécialité';
            }
                      alert(document.getElementById("Specialite_Medecin").value);
      }
      else {
        alert('l\'objet Specialite n\'existe pas");
      }
    }

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

Discussions similaires

  1. [MS-DOS] Problème avec Script
    Par bliml dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 24/05/2005, 13h52
  2. [javascript] problème insertion image
    Par Pwill dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 18/05/2005, 16h12
  3. [Javascript] Problème avec une fenêtre popup.
    Par mika0102 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 18/05/2005, 10h50
  4. [XSL/JavaScript]problème d'intégration code JS dans le XSL
    Par Devil666 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 27/04/2005, 16h36
  5. [DOS] Problème de script bat
    Par Philzegore dans le forum Windows
    Réponses: 3
    Dernier message: 04/04/2005, 12h35

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