Je ne trouve pas l'erreur !

[Résolu]
Signaler
Messages postés
355
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
-
Messages postés
355
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
-
Bonsoir,

Alors voilà, j'ai écrit la petite fonction ci-dessous pour faire faire plusieurs évènements lorsque je choisis une option dans un select. Cette fonction est appelée avec onChange sur le select. Elle devrait écrire dans un champ de texte son contenu et adapter le 3eme champ, description. En fait, si je choisis la premiere option dans mon select, je devrais avoir "choix 1" qui s'affiche dans le champ de texte appelé nom et descrip[0] qui s'affiche dans le champ description. IE me met une erreur, mais je la trouve pas.
merci d'avance pour votre aide.
PS: le formulaire s'appelle modif; le select, dossier.

function syncro()
{
var descrip;
var num;

descrip[0] = 'test';
descrip[1] = 'test3';

document.forms.modif.nom.value=document.forms.modif.dossier.value; // syncronisation entre le select et la case nom

num=document.forms.modif.nom.options.selectedIndex; // récupération du numéro du select choisi
document.forms.modif.description.value=descrip[num]; // idem avec la description

document.forms.modif.description.focus();
}

5 réponses

Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
là aussi, dèjà :

    var descrip=[];

    tu devrais user du debogger.

    tu aurais pu utiliser le .value des options peut-être....

<script type="text/javascript">
function syncro()
{    var num=document.modif.dossier;
    document.modif.nom.value =
        num.options[num.selectedIndex].text;
    document.modif.description.value =
        num.options[num.selectedIndex].value;
    document.modif.description.focus();
}
</script>
      <form name="modif" method="post" action="">
       
Modifier les informations de
          <select name="dossier" id="dossier" class="text" onChange="syncro()">
            <option selected value='fdsfjdjl'>test</option>
        <option value='afdaskfjkl'>test2</option>
        <option 'afiwsonsi'>test3</option>
          </select>
         

         

          Nom :
         
          (modifiez pour renommer)

         

          Description du voyage (500 caract&egrave;res max.) :
         
         

         

         
       

      </form>

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
355
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
1
je viens de trouver une erreur:

dans cette ligne, c'est dossier et pas nom:

num=document.forms.modif.nom.options.selectedIndex;

mais ca marche toujours pas...
donc ma fonction pour l instant c est:

function syncro()
{
var descrip;
var num;

descrip[0] = 'test';
descrip[1] = 'test3';

document.forms.modif.nom.value=document.forms.modif.dossier.value; // syncronisation entre le select et la case nom

num=document.forms.modif.dossier.options.selectedIndex; // récupération du numéro du select choisi
document.forms.modif.description.value=descrip[num]; // idem avec la description

document.forms.modif.description.focus();
}
Messages postés
13616
Date d'inscription
jeudi 13 février 2003
Statut
Membre
Dernière intervention
15 octobre 2013
36
Bonjour,

    si on avait le formulaire... ça nous éviterais de le faire....
       ( et peut-être d'une manière différente du tien ? )

    document.forms.modif.nom.value=document.forms.modif.dossier.value;
            // syncronisation entre le select et la case nom
    euh.....
    document.modif.nom.value=document.modif.dossier.options[document.modif.dossier.selectedIndex].text;
       ou .value ( oublions les abréviations dans un 1er temps ! )
             mais tout ça dépend.... du formulaire !

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
Messages postés
355
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
1
function syncro()
{
var descrip;
var num;

descrip[0] = 'fdsfjdjl';
descrip[1] = 'afdaskfjkl';
descrip[2] = 'afiwsonsi';

document.modif.nom.value=document.modif.dossier.options[document.modif.dossier.selectedIndex].text; // syncronisation entre le select et la case nom

num=document.modif.dossier.options.selectedIndex;
document.modif.description.value=descrip[num]; // idem avec la description

document.modif.description.focus();
}

et le formulaire:

<form name="modif" method="post" action="">
<div align="left">Modifier les informations de
<select name="dossier" id="dossier" class="text" onChange="syncro()">
<option selected>test</option>
<option>test2</option>
<option>test3</option>
 </select>
<br>
<br>
Nom :
<input type="text" class="text" name="nom" id="nom" value="test">
(modifiez pour renommer)<br>
<br>
Description du voyage (500 caract&egrave;res max.) :
<input name="description" type="text" class="text" id="description" value="" size="70" maxlength="500">
<br>
<br>
<input name="Enregistrer" type="submit" class="bouton" id="Enregistrer" value="Enregistrer">
</div>
</form>

Voilà, là il y a tout, j ai essayé de faire encore des modifs, mais ca passe pas.
Si jamais, le tableau descrip est rempli en php, parce qu il doit lire dans des fichiers, mais ca c est le
résultat quand je met afficher la source depuis le navigateur.
Messages postés
355
Date d'inscription
lundi 26 juillet 2004
Statut
Membre
Dernière intervention
26 juin 2012
1
Merci beaucoup! Tout est ok et marche correctement.

PS: Très pratique ton site au passage ;-)