Page 1 sur 1

concaténation et tableaux

Posté : 05 sept. 2005, 10:05
par donatello
Bonjour à tous,
Je crée un tableau a dont le nombre d'éléments n'est pas connu à l'avance, à partir des éléments d'un formulaire:
for (i=0; i<= document.forms.length; i++) {
a = document.forms.elements[0].value
}

Je souhaite envoyer tous les éléments du tableau a, quelque soit leur nombre, vers une autre page (page.php).
Je sais que je dois utiliser un script de la forme

for (i=0; i<= a.length; i++) {
window.location.href='page.php?....'
}

Mon problème: je ne vois pas comment écrire la concaténation qui va ajouter les éléments du tableau à l'url, quelquesoit le nombre d'éléments.
Quelqu'un sait-il comment faire?

Re: concaténation et tableaux

Posté : 05 sept. 2005, 10:14
par Lunatic
Je souhaite envoyer tous les éléments du tableau a, quelque soit leur nombre, vers une autre page (page.php).
Je sais que je dois utiliser un script de la forme
for (i=0; i<= a.length; i++) {
window.location.href='page.php?....'
}


Bonjour,

là tu mélanges php et javascript, ça ne peut pas fonctionner !

La redirection en php se fait grace à la fonction header :

$destination = 'http://www.monlien.fr';
header('Location: '.$destination);
Tu peux regarder ce lien pour en savoir plus.

Pour passer ton tableau à la page, tu peux utiliser les sessions.

Posté : 05 sept. 2005, 10:19
par Invité
hum je ne pense pas avoir mélangé...en fait je génère le code javascript dynamiquement avec du php, d'ou page.php. je n'ai pas ajouté le code php pour plus de clarté.
Donc je confirme que je souhaite trouver comment effectuer cette opération avec javascript.

Posté : 05 sept. 2005, 10:22
par Lunatic
hum je ne pense pas avoir mélangé...en fait je génère le code javascript dynamiquement avec du php, d'ou page.php. je n'ai pas ajouté le code php pour plus de clarté.
Donc je confirme que je souhaite trouver comment effectuer cette opération avec javascript.
Ok, ça ne me paraissait pas clair ce bout de code javascript (edit : et en plus je croyais que la boucle était en php :roll:)

Mais à mon humble avis je t'ai déjà donné la meilleure solution : utiliser les sessions. Tu pourras ainsi faire passer tes variables de pages en pages même avec une redirection javascript.

Posté : 05 sept. 2005, 10:27
par Invité
ok, je te remercie pour le tuyau sur les sessions. je vais certainement l'utiliser. mais il y a bien un moyen de concaténer dynamiquement des variables dans une url avec javascript...et j'aimerais savoir comment écrire un tel script.

Posté : 05 sept. 2005, 10:29
par Invité
tu as raison, le window.location ne doit pas être dans la boucle de concaténation, mais j'ai besoin d'aide pour trouver comment concaténer les variables à la suite du window.location

Posté : 05 sept. 2005, 13:12
par Truc
salut, essai come ceci (j'ai pas testé personnellement mais je pense que ca devrai aller)

Code : Tout sélectionner

var chaine="nb="+a[i].length; for (i=1; i<= a[i].length; i++) { chaine+="&variable"+i+"="+a[i]; } window.location.href="page.php?"+chaine;
ce qui devrai donner pour un tableau de 10 valeurs qui contient [12,15,..]:

page.php?nb=10&variable1=12&variable2=15.....

Posté : 05 sept. 2005, 13:17
par Lunatic
Je pense que Truc a donné la solution donc je me permets une question.

Si les données du tableau proviennent d'un formulaire, n'est-il pas plus simple / plus propre d'utiliser directement les valeurs transmises à la soumission de celui-ci ?

Posté : 05 sept. 2005, 13:30
par Invité
merci à truc pour sa solution, elle fonctionne.
Pour répondre à lunatic, je n'avais pas pensé au formulaire, je pense que ça devrait marcher aussi.
merci à tous.

Posté : 06 sept. 2005, 11:13
par Axel
Salut

Je ne sais exactement ce que tu veux faire avec tes données en javascript, mais une page ouvrante peut directement récupérer les variables de la page parente.
Un truc du style fonctionne, sur ta page principale:
for (i=0; i<= document.forms[i].length; i++) {
a[i] = document.forms[i].elements[0].value
} 
//un petit popup 
window.open( page.php, "mapagederecup",  ) ;
code à mettre dans page.php
et en java tu recuperes la variable dans une autre variable.
b = window.opener.a;
alert(b);
C'est une façon de penser différente car là tu n'envoie pas les infos mais c'est la page que tu ouvres qui va les chercher.

Rmq: rien ne t'empeche ensuite de renvoyer les infos sur la page ouvrante en faisant:
window.opener.a [i] = "super ça marche";
//ou meme sous forme de tableau 
window.opener.a = array("super ça marche", "en fait non", etc...);
en esperant que ça pourra t'aider 8-[