Concaténer des noms de variables

cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012 - 9 déc. 2010 à 11:28
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 - 9 déc. 2010 à 15:37
BOnjour à toutes et à tous,

Je vous expose la situation :

- J'ai créer dynamiquement des tableau : tableauprix1, tableauprix2...

Mon problème :

- Je veux accéder à partir d'une boucle à mes différents tableaux, je veux donc concaténer la valeur d'un compteur i au nom de la variable tableauprix
de façon à pouvoir regarder dans chacun de mes tableaux.

Voici mon code actuel :
var i_prix=valeur quelconque disons 6;
var i=1;

var larg=document.formulaire.largeur.value;

while(i<=i_prix){

i2=i+1;

if(tableauprix.i[largeur]>=larg &&  tableauprix.i2[largeur]<=larg){
var ok="Largeur ok";
};

i++;
};

if(ok=="undefinded"){
alert("Veuillez saisir une largeur correct");
}else{
alert(ok);
};


Auriez vous une idée ?

Merci d'avance et bonne journée à tous !

13 réponses

cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
9 déc. 2010 à 12:14
Bonjour,

Puis-je voir la structure de vos tableaux ?
0
cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012
9 déc. 2010 à 12:17
Bien sur voici comment je les génère :
<script>
<?php 	
$i=1;
while($prix=mysql_fetch_array($tableau)){
?>	
tableauprix<?php echo $i;?> =new Array();  
tableauprix<?php echo $i;?>["largeur"] ="<?php echo $prix["largeur_ligne_prix"];?>"; 
tableauprix<?php echo $i;?>["hauteur"] ="<?php echo $prix["hauteur_ligne_prix"];?>"; 
tableauprix<?php echo $i;?>["prix"] ="<?php echo $prix["prix_ligne_prix"];?>";
<?php 
$i++; 				
}; 				
?>
</script>
0
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
9 déc. 2010 à 12:35
Il serai plus simple de générer un tableau à 2 dimensions

<script>
<?php 	
$i=1;
while($prix=mysql_fetch_array($tableau)){
?>	
tableauprix[<?php echo $i;?>] =new Array();  
tableauprix[<?php echo $i;?>]["largeur"] ="<?php echo $prix["largeur_ligne_prix"];?>"; 
tableauprix[<?php echo $i;?>]["hauteur"] ="<?php echo $prix["hauteur_ligne_prix"];?>"; 
tableauprix[<?php echo $i;?>]["prix"] ="<?php echo $prix["prix_ligne_prix"];?>";
<?php 
$i++; 				
}; 				
?>
</script>



Et pour la vérification :

var i_prix=valeur quelconque disons 6;
var i=1;

var larg=document.formulaire.largeur.value;

while(i<=i_prix){

i2=i+1;

if(tableauprix[i][largeur]>=larg &&  tableauprix.[i2][largeur]<=larg){
var ok="Largeur ok";
};

i++;
};

if(ok=="undefinded"){
alert("Veuillez saisir une largeur correct");
}else{
alert(ok);
};
0
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
9 déc. 2010 à 12:36
oups j'ai laisser trainer un "."

remplacer
tableauprix.[i2]
PAR
tableauprix[i2]
0

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

Posez votre question
cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012
9 déc. 2010 à 14:24
Merci pour ta réponse, malheureusement ça ne semble pas fonctionner.

Je fais même le test suivant :

alert(tableauprix[1]["largeur"]);


et ça ne fait rien... Je ne comprend pas mais je ne m'avoue pas vaincu !
0
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
9 déc. 2010 à 14:38
Les 2 codes javascript sont placés dans le même fichier ?
Avant le while qui remplit le tableau faudrai déclarer la variable tableauprix :
var tableauprix;


Sinon je pense que la variable n'est pas visible dans la suite du code.
0
cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012
9 déc. 2010 à 14:39
D'ailleurs lorsque je fais les tests suivants le alert("test2") n'apparait pas, il n'y a que le test1

		
alert("test1");
tableauprix[<?php echo $i;?>] = new Array();  
alert("test2");
tableauprix[<?php echo $i;?>]["largeur"] ="<?php echo $prix["largeur_ligne_prix"];?>"; 
alert("test3");
tableauprix[<?php echo $i;?>]["hauteur"] ="<?php echo $prix["hauteur_ligne_prix"];?>"; 
alert("test4");
tableauprix[<?php echo $i;?>]["prix"] ="<?php echo $prix["prix_ligne_prix"];?>";
0
cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012
9 déc. 2010 à 14:42
Je viens de nouveau de tester et avec le tableau à double dimensions il y a l'air d'avoir des soucis si je remet comme au départ les tests marche, mais du coup je ne sais toujours pas comment concaténer un nom de variable avec une valeur de variable.
0
cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012
9 déc. 2010 à 15:00
Autant pour moi j'avais oublié ceci pour les tableaux à deux dimensions :

var tableauprix = new Array();
0
cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012
9 déc. 2010 à 15:10
De plus en plus bizzare il semble que je ne puisse accéder qu'a la dernière valeur du tableau.
0
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
9 déc. 2010 à 15:23
Le code

var tableauprix = new Array();


Est bien déclarer qu'une seule fois ? IL n'est pas dans ta boucle while, sinon cela réinitialise le tableau ?

Puis-je voir le code complet ?
0
cs_AcarnanDragoon Messages postés 55 Date d'inscription lundi 9 février 2009 Statut Membre Dernière intervention 3 octobre 2012
9 déc. 2010 à 15:36
My god...

Je ne l'avais pas vu mais effectivement il était dans la boucle...
Mea Culpa, et merci pour ton aide. Je continue mon ptit bonhomme de chemin et tiens au courant de la suite ^^
0
cs_ludwig59 Messages postés 128 Date d'inscription lundi 21 avril 2008 Statut Membre Dernière intervention 6 mai 2011 2
9 déc. 2010 à 15:37
ok de rien et bonne continuation
0
Rejoignez-nous