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

  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
    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");
      }
    }

  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
    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...

  6. #6
    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.

    @+

+ 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