Comment publier un tableau associatif PHP
Je avoir la forme suivante:
<form action="options.php" method="post">
<input type="text" name="deptid" id="deptid" />
<input type="text" name="deptname" id="deptname" />
<input type="submit" name="submit" id="submit" value="save" />
</form>
MODIFIER
Est-il possible de passer les deux valeurs dans un tableau associatif AVANT soumission ?
Je voudrais de passer sous cette forme:
array('deptid'=>'deptname')
J'ai besoin de cela parce que j'ai éviter de modifier le script de la destination des fichiers php(options.php)
Grâce.
- cURL est votre ami
- Ce n'cURL ont à voir avec cela?
- Parce qu'il a dit "en utilisant seulement script php". Donc, si il doit publier des données sur cette page en utilisant seulement un script php pour un débutant, je pensais cURL serait bon.
- Ce serait si le serveur est en contact avec un autre serveur pour récupérer les informations sur le serveur. C'est le client vers le serveur du client et sur le serveur...? Je ne sais pas où la boucle serait venu dans l'image.
- Peut-être que j'ai mal compris la question, alors. Désolé pour ça.
Vous devez vous connecter pour publier un commentaire.
Ici est une méthode utilisant le HTML pur que vous près de exactement où vous voulez être, et n'utilise que des HTML:
Ce qui vous permettrait d'en PHP:
Que vous pouvez ensuite (y compris la désinfection) accès comme ceci:
MODIFIER
Ou... Vous voulez faire référence à la
deptid
dans leinput name
attribut et l'utiliser pour modifier la ligne pour un nom de département? Ce qui semble indiquer quelque chose comme ceci:Sorties:
http://codepad.org/DtgoZGe7
Le problème avec ceci est que la
$deptid
valeur devient une valeur qui n'est en fait pas directement le nom ou la référence. Je pense que c'est potentiellement problématique à mettre en oeuvre en raison de cette abstraction de la valeur à partir du serveur vers le client et à l'arrière, donc je vous conseille ce que j'ai au dessus à la place. Ce n'est pas beaucoup de différence dans la pratique, mais c'est plus ou moins auto-documentation.Remarque, si tu voulais sérialiser une liste de départements, c'est un peu plus délicat. Vous pourriez, par exemple, essayez ceci:
Qui permettrait d'ajouter une valeur indexée pour chaque
input
. Cependant... Ils étaient ne serait pas directement associés. Donc, vous obtiendrez, au lieu de cela, deux à zéro des tableaux indexés pour chaque clé.Ce que je vous suggère dans ce cas est d'utiliser Javascript pour ajouter chaque nouveau ministère
input
éléments, de sorte que vous pouvez donner à chacun un certain nombre comme:Ou le faire à la vieille école de la PUBLICATION de la méthode et de l'utilisation de PHP pour compter
$POST['options']
et "manuellement" ajouter une nouvelle "ligne" d'intrants, avec le même indice. C'est un piège commun, donc vous avez juste à penser à ce sujet si c'est ce que vous êtes après, à un certain point.options
tableau.array('deptid'=>'deptname')
. Que, sans Javascript côté client de la manipulation de lainput
valeurs (par exemple, une valeur cachée que modifiéeonsubmit
), ce qui semble indiquer est le découplage du nom de l'ID de ligne. Donc, il pourrait juste être la coopérative doit<input type="hidden" name="<?=$deptid?>" value="<?=$deptname?>">
. Laquelle je viens de penser. Hmm. J'espère donc que nous allons entendre l'OP.$deptid
et$deptname
à partir de votre base de données ou de la source et de l'insérer (à l'aide d'un modèle d'approche, par exemple). C'est juste là où vous êtes le stockage de données. Une approche typique pour ce qui est de la Modèle-Vue-Contrôleur (MVC) modèle de conception, trop.$_POST
est déjà un tableau associatif et je vous recommande de ne pas compliquer les choses au-delà de cette parce que$_POST
contient déjà les données proviennent de votre formulaire.et le tableau associatif que vous allez recevoir est créé et nommé même dans l'attribut name de la saisie d'éléments dans votre formulaire (y compris textarea)
D'Autres Idées
Que je vois votre code que vous voulez mettre l'
deptname
données àdeptid
qu'il atteint le PHP le code côté serveur. eh bien, la chose que vous pouvez faire avec est juste de l'attribuer à la touchedeptid
merge
avec le réseau POSTE?Construire un objet JS avec la structure appropriée, de les convertir en JSON avec
JSON.stringify()
, le POSTER, et puis nejson_decode($_POST['data'],true)
.Vous aurez une copie exacte de JS objet, PHP associer tableau. Déposer le deuxième paramètre de
true
pour obtenir un objet PHP.$_POST
est déjà un tableau associatif.Vous pouvez reconstruire une matrice de la forme dont vous avez besoin à partir de ce par l'organisation des
$_POST
à une variableMaintenant $montableau est ce que vous avez besoin. Ne
var_dump($myvar);
.Pourquoi voudriez-vous faire cela?
Mais, vous POUVEZ envoyer des "tableaux" à travers des formes comme ceci: