Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tableau de valeurs dans une seule variable post

2 réponses
Avatar
Soon
Bonjour à tous,

Ma question est mi-Ajax, mi-PHP. Je tente d'abord sur ce forum.

Je voudrais formater une donnée post en Javascript afin de la traiter
comme un tableau de valeurs dans PHP.

Du coté de php (traitant la requete AJAX), je souhaite faire:
foreach($_POST['names'] as $name)
{
echo $name . "<br/>";
}

et la j'obtiendrais dans mon html :
nom1
nom2
nom3
nom4
...

Question: Comment formater en javascript ma variable post "names" afin
d'utiliser un tel traitement PHP ? Sachant que je ne connais pas le
nombre de valeurs "nom" au départ.

J'ai essayé names={nom1,nom2,nom3,nom4,...} sans succès :(

Je vois bien quelques bidouilles mais c'est pas très sexy. J'imagine que
quelqu'un à déjà fait ça. Une idée ?

Merci d'avance.

-- Soon

2 réponses

Avatar
Olivier Miakinen

Je voudrais formater une donnée post en Javascript afin de la traiter
comme un tableau de valeurs dans PHP.

Du coté de php (traitant la requete AJAX), je souhaite faire:
foreach($_POST['names'] as $name)
{
echo $name . "<br/>";
}

et la j'obtiendrais dans mon html :
nom1
nom2
nom3
nom4
...

Question: Comment formater en javascript ma variable post "names" afin
d'utiliser un tel traitement PHP ? Sachant que je ne connais pas le
nombre de valeurs "nom" au départ.


Déjà, si c'est dans un formulaire, tu peux utiliser un nom avec des
crochets pour en faire une variable de type tableau. Cf. l'exemple 12-22
sur <http://www.php.net/manual/fr/language.variables.external.php> :
o) name="personal[name]"
o) name="personal[email]"
o) name="vin[]"

Cela dit, je ne sais pas comment cela se traite en JavaScript.

Avatar
ASM

Du coté de php (traitant la requete AJAX), je souhaite faire:
foreach($_POST['names'] as $name)
{
echo $name . "<br/>";
}

Question: Comment formater en javascript ma variable post "names" afin
d'utiliser un tel traitement PHP ? Sachant que je ne connais pas le
nombre de valeurs "nom" au départ.

J'ai essayé names={nom1,nom2,nom3,nom4,...} sans succès :(


et tout bêtement :

<p>nom 1 : <input name="names" type="text">
<p>nom 2 : <input name="names" type="text">
<p>nom 3 : <input name="names" type="text">
<p>nom 4 : <input name="names" type="text">

ne ferait-ce point ton affaire ?

Pb ... comment ça ? tu ne connais pas le nombre de nom ?
Ils sont créés dynamiquement via JS ?

Si, oui, faut continuer à leur donner comme name : 'names'


Sinon, à mon idée, il faut que tu aies un champ caché
(nommé 'names' tandis que les autres sont nommés autrement)
et que le JS y balance tous les noms que tu veux au submittage

qque chose du genre (mais quel séparateur glisser entre les noms ?):

<form action="test.php" method="post"
onsubmit="
var I = this.name;
for(var i=0; i<I.length; i++)
if(I[i].name='name' && I[i].value!='')
this.names.value += I[i].value+',';
return myRequestinge();">
<p><input name="names" type="hidden" value="">
<p>nom 1 : <input name="name" type="text">
<p>nom 2 : <input name="name" type="text">
<p>nom 3 : <input name="name" type="text">