Un peu de select et onChange!

Résolu
Ankaa1988 Messages postés 74 Date d'inscription lundi 20 février 2006 Statut Membre Dernière intervention 2 août 2010 - 15 avril 2007 à 00:31
Ankaa1988 Messages postés 74 Date d'inscription lundi 20 février 2006 Statut Membre Dernière intervention 2 août 2010 - 17 avril 2007 à 21:39
bojnour a tous,

j'ai besoin de vous lol...


je m'xpliqe je suis en train de faire un ti site pour moi et j'ai un
petit problème... en effet j'utilise les fonctions en java et onChange
et en fait je souhaite que lorsque l'utilisateur change le select, on
prenne une valeur d'un champs de text et qu'on la mette dans une case
d'un autre select au même rang

et la est la difficulté parce que il existe bien la commande
selectedIndex mais elle prend la valeur de elect après le changement et
pas avant ce qui me cause quelques conflits pour la suite


finalement j'orais voulu savoir si vous ne conaissiez pas une commande du genre previousselectedIndex lool...

 

je vous met une parti du code pour peut être vous aider a mieux comprendre...

<script language="JavaScript" type="text/javascript">

function change(arg1,arg2)
{
var test = arg1;
var numeroselect = arg2;
document.form2.select1.options[numeroselect].text=test;

alert(numeroselect);
}

</script>
</head>

<form id="form1" name="form1" method="post" action="">
  <select name="list" id="list" onchange="change(document.form1.text.value,this.selectedIndex)">
    <option value="list1">1</option>
    <option value="list2">2</option>
    <option value="list3">3</option>
  </select>
 
</form>
<form id="form2" name="form2" method="post" action="">
  <select id="select1" name="select1">
    <option value="1"></option>
    <option value="2"></option>
    <option value="3"></option>
  </select>
 

merci a tous

++
A voir également:

8 réponses

stfou Messages postés 450 Date d'inscription samedi 16 avril 2005 Statut Membre Dernière intervention 18 avril 2007 3
15 avril 2007 à 11:00
Bonjour,
tu as l'évenement obj.onfocus, il te permettra de detecter lorsque l'utilisateur arrive sur le champ. Donc par exemple :
var valeur;
obj.onfocus=function(){valeur=obj.value};

<hr /><hr />STFOU
3
Anthed Messages postés 152 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 17 janvier 2014 3
16 avril 2007 à 10:31
Tu peux également mettre à jour une variable globale avec la valeur du selectedIndex sur l'événement onchange de ton select au chargement de la page et à chaque modification et ce, à la fin de tes autres traitements éventuels. Ainsi, cette variable contiendra l'avant dernier index sélectionné.
3
Ankaa1988 Messages postés 74 Date d'inscription lundi 20 février 2006 Statut Membre Dernière intervention 2 août 2010
17 avril 2007 à 21:39
donc voila avec toutes les corrections ça donne ça

<script type="text/javascript">
<!--
var i;
var numeroselect;
function start()
{
i = 0;
}
function changecat(arg1,arg2)
{
 if(i==0)
  {
   numeroselect=0;
   i = i+1;
  }
var nomcat = arg1;
document.save.select_nom_cat.options[numeroselect].text=nomcat;
numeroselect = arg2;
}
//-->
</script>

avec la fonction start a mettre dans body avec onload et la fonction changecat dans le select et ça roule
merci a tous
++
3
cs_bultez Messages postés 13615 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 30
15 avril 2007 à 12:16
Bonjour,




>>lorsque l'utilisateur change le select, on prenne une valeur d'un
champs de text
>>et qu'on la mette dans une case d'un autre select au même rang


    pas de fonction toute faite
    va voir ici par exemple, pour avoir quelques réponses




<hr />



Cordialement            Bul     [mon Site]     [M'écrire]



<hr />
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Ankaa1988 Messages postés 74 Date d'inscription lundi 20 février 2006 Statut Membre Dernière intervention 2 août 2010
17 avril 2007 à 00:08
ok merci,
j'avais pensé juste après avoir poster a la methode de anthed qui parait la plus simple même si celle de stfou a l'air plus élégante...
je vais voir laquelle est la plus pratique...

encore merci
++
0
Ankaa1988 Messages postés 74 Date d'inscription lundi 20 février 2006 Statut Membre Dernière intervention 2 août 2010
17 avril 2007 à 12:49
bon ba je suis en train d'essayer d'intégrer le code de anthed mais j'ai encore un ti problème...

j'ai creer une variable global dans mon code (je l'appelle i) et au
chargement elle prend la valeur 0 puis quand l'utilisateur change le
select j'appelle une fonction qui avec un if regarde la valeur de i si
celle si est a 0 alors on met la variable numeroselect a 0...


mais la variable global i n'est pas définie dans la 2iem fonction, si quelqu'un sait pourquoi????


je vous met le code pourque cela soit plus clair


voila le java

<script type="text/javascript">

<!--

var i;

//var numeroselect;

function start()

{i=0}

function changecat(arg1,arg2)

{

if(i=0){numeroselect=0;}

var nomcat = arg1;

document.save.select_nom_cat.options[numeroselect].text=nomcat;

var numeroselect = arg2;

}

//-->

</script> et le htlm

<select name="num_cat" id="num_cat" 
onload='start()'
onchange="changecat(document.creation.categorie.value,this.selectedIndex)">

            <option value="nblien_cat01">1</option>

            <option value="nblien_cat02">2</option>

            <option value="nblien_cat03">3</option>

            <option value="nblien_cat04">4</option>

            <option value="nblien_cat05">5</option>

          </select>
je sais bien qu'il y a bien d'autre facon que de
rajouter une variable global i et de raisonner directement sur
numeroselect mais bon le problème final est le même

aucune transmission de valeur de variable entre plusieurs fonctions...


merci de m'aider... ++
0
Anthed Messages postés 152 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 17 janvier 2014 3
17 avril 2007 à 14:19
Je te conseille d'aérer un peu ton code de la façon suivante :

var i;
//var numeroselect;

function start() {
    i = 0;
}

function changecat(arg1, arg2) {
    if (i == 0) {
        numeroselect = 0;
    }
    document.save.select_nom_cat.options[numeroselect].text = arg1;
    var numeroselect = arg2
}
Le problème que tu as évoqué devait venir du fait que tu as écrit (i 0) au lieu de (i 0).
Ensuite numeroselect est valorisé à 0 avant d'être déclaré puisque sa déclaration globale est en commentaire. A toi de voir si tu la mets globale ou interne à la fonction changecat.
Remplace arg1 et arg2 par des noms plus parlants, ça t'évitera des incompréhensions, surtout dans le cas de grosses fonctions que tu voudrais modifier plusieurs mois après les avoir écrites (mince, c'était quoi arg8 ? ...).
0
Anthed Messages postés 152 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 17 janvier 2014 3
17 avril 2007 à 14:26
Petit tip : pour tester en 'temps réel' les différentes valeurs de tes variables et ainsi vérifier que ton raisonnement est le bon, tu peux ajouter à la fin de changecat() une ligne du type :
window.status "i " + i + ", numeroselect = " + numeroselect;

La barre d'état est plus discrète que les alert et permet de ne pas changer le fonctionnement des fonctions dans le cas notamment où il y a des temporisations.
0

Discussions similaires

onchange() dans un