Dynamique dans les adresses d'objet

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 à 22:41
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007 - 18 avril 2007 à 11:10
bonjour a tous,

encore plein de question et toujours pas de réponse...

cette fois c'est plutot un problème de syntaxe..

en effet j'ai une adresse d'obj qui est écrite comme suit


document.form.obj_var_nom.options[1].text


cela fait reférence a un select et le truc c'est que la valeur de var
change en fonction de différents parametres. Ainsi dans certaines
conditions l'adresse portera plutot sur un select nommé obj_1_nom et
dans d'autres obj_2_nom


mais javascript ne reconnait pas le coté dynamique de var et cherche toujours a l'adresse obj_var_nom


voila si quelqu'un a le miracle...

7 réponses

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
17 avril 2007 à 22:55
B
onsoir...
Il n'est qu'à utiliser document.getElementById

//-----------------------
function Recup_Text( id_){
  var Obj = document.getElementById(id_);
  var Chaine = Obj.options[1].text;
  return( Chaine);
}

Il va de soit que les SELECTs doivent avoir un id que l'on passera en paramètre.
;0)
Ankaa1988 Messages postés 74 Date d'inscription lundi 20 février 2006 Statut Membre Dernière intervention 2 août 2010
18 avril 2007 à 00:44
je n'ai sans doute pas très bien compris ce que tu voulais faire mais ca ne marche pas


en fait, d'après ce qe j'ai compris ta metho de permet de rendre l'id dynamique ce qui m'avance un peu mais d'autres contraintes m'obligent à ce que l'id soit dynamique et entouré de préfixe et suffixe

ainsi dans mon adresse doc.form.kkk_id_iii.opt... seul id doit changer

j'espère que tu as réussis a comprendre je n'arrive plus très bien a m'exprimer a ces heures...
Anthed Messages postés 152 Date d'inscription dimanche 20 février 2005 Statut Membre Dernière intervention 17 janvier 2014 3
18 avril 2007 à 08:47
Au chargement de ta page, tu peux initialiser une variable globale pointant sur ton select, comme ça, même s'il change d'id ou autre, ce n'est pas grave, en supposant que ton select a toujours le même id au début.

<script>
    var select;

    function init() {
       select = document.getElementById("id_de_départ");
    }
</script>

Tu n'as plus qu'à utiliser la variable globale 'select'.
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
18 avril 2007 à 10:11
Bonjour




2 possibilités :

function test(nomSelect)
    {
    var a=document.getElementById(nomSelect).options[1].text;
    var b=eval("document.form1." + nomSelect + ".options[1].text");
   
    alert("valeur a=\t" + a + "\nvaleur b=\t" + b);
    }

<form name="form1">
<select id="sel" name="sel">
<option value="1">un</option>
<option value="2">deux</option>
</select>
 
  test

</form>

la valeur b, c'est ce que tu voulais faire 
la valeur a, c'est la solution donnée par petoleTeam

Cordialement
Roro webDev

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

Posez votre question
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
18 avril 2007 à 10:12
Bonjour




petite remarque : ne pas confondre name et id

Cordialement
Roro webDev
Ankaa1988 Messages postés 74 Date d'inscription lundi 20 février 2006 Statut Membre Dernière intervention 2 août 2010
18 avril 2007 à 11:03
merci roro06 on s'approche du but cependant avec la seconde methode le problème est que l'adresse n'est plus reconnue comme tel mais comme un chaine de caractère...
Pour être plus précis, je souhaite qu'a l'adresse

document.form1." + nomSelect + ".options[1].text

on puisse donner une valeur de text par exemple... ainsi cela donnerais

"document.form1." + nomSelect + ".options[1].text"=text;

mais j'ai bien l'adresse devenue dynamique ainsi sous certaines conditions j'ai

document.form1.0options[1].text
 mais a qui je ne peux donner aucune valeur...

en espérant que tu as compris
cs_roro06 Messages postés 732 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 29 octobre 2007
18 avril 2007 à 11:10
Bonjour




pas bien compris !

Si c'est pour affecter une valeur :
soit :
    document.getElementById(nomSelect).options[1].text="salut";
soit :
    eval("document.form1." + nomSelect + ".options[1].text='salut'");

remarque :   "glop" "pas glop"
Cordialement
Roro webDev
Rejoignez-nous