concaténation et tableaux

donatello
Invité n'ayant pas de compte PHPfrance

05 sept. 2005, 10:05

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?

Eléphanteau du PHP | 28 Messages

05 sept. 2005, 10:14

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.

Invité
Invité n'ayant pas de compte PHPfrance

05 sept. 2005, 10:19

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.

Eléphanteau du PHP | 28 Messages

05 sept. 2005, 10:22

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.
Modifié en dernier par Lunatic le 05 sept. 2005, 10:34, modifié 1 fois.

Invité
Invité n'ayant pas de compte PHPfrance

05 sept. 2005, 10:27

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.

Invité
Invité n'ayant pas de compte PHPfrance

05 sept. 2005, 10:29

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

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

05 sept. 2005, 13:12

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.....

Eléphanteau du PHP | 28 Messages

05 sept. 2005, 13:17

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 ?

Invité
Invité n'ayant pas de compte PHPfrance

05 sept. 2005, 13:30

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.

Eléphant du PHP | 138 Messages

06 sept. 2005, 11:13

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-[
Il y a des gens qui ont une bibliothèque comme des eunuques ont un harem (V. Hugo)