11
votes

matrice multidimensionnelle post de la forme

Je veux savoir comment je peux poster un tableau multidimensionnel?

En gros, je souhaite sélectionner un utilisateur et que l'utilisateur sélectionné disposera d'envoyer un courrier électronique et un nom à envoyer à la poste. P>

SOI Les utilisateurs, auront un email et un nom. Je veux obtenir en PHP comme suit P>

$_POST['users'] = array(
  array(name, email),
  array(name2, email2),
  array(name3, email3)
);


3 Réponses :


30
votes

Vous pouvez nommer vos éléments de formulaire comme ceci:

<input name="users[1][name]" />
<input name="users[1][email]" />
<input name="users[2][name]" />
<input name="users[2][email]" />
...


5 commentaires

Qu'en est-il des utilisateurs [] [nom], dois-je définir l'ID (1, 2 ..)?


Nan. Vous pouvez utiliser les utilisateurs [] , aussi.


Qu'en est-il de la situation où le nombre d'utilisateurs n'est pas prédéfini, disons qu'un utilisateur clique sur un bouton + et un nouvel ensemble de champs s'ouvre et ils peuvent en réalité choisir de ne pas ajouter d'utilisateurs


@Pila fait l'aide du commentaire précédent?


J'ai fini par utiliser jQuery pour créer de nouveaux champs de saisie avec un nom à l'aide d'un compteur, comme: nom = "Utilisateurs [" + i + "] [Nom]"



2
votes

Eh bien, vous allez devoir faire des boucles quelque part. Si vous nommez chaque élément de formulaire avec un index (comme le suggère Franz), vous faites la boucle sur le côté PHP.

Si vous souhaitez utiliser JavaScript pour faire la boucle, faites votre formulaire Onsubmit () Créer une chaîne JSON à passer au PHP. Demandez ensuite le PHP le récupérer comme si: xxx

Le deuxième argument lui indique de faire des tableaux au lieu d'objets anonymes.


0 commentaires

7
votes

ici 's autre moyen: < Un href = "http://php.net/manual/fr/funcuncuncunk.serialize.php" rel = "NOFOollow NOREFERRER"> Serialize Le tableau, post et Underialize (cryptage en option).

et voici un exemple qui a fonctionné pour moi:

" send.php ": xxx

" recevoir.php ": xxx < / Pre>

avec qui vous pouvez simplement utiliser $ var_array comme s'il était partagé entre les deux fichiers / sessions. Bien sûr, il doit y avoir un dans ce send.php , mais vous pouvez également l'envoyer sur un en tant que String de requête.

Cette méthode a un grand avantage lorsque vous travaillez avec des tableaux multidimensionnels.


3 commentaires

Solution géniale. Fonctionne comme un charme. Merci.


@denisexic, je suis vraiment heureux que quelqu'un ait apprécié! :)


Et simplement la meilleure solution. Merci :)