J'ai un formulaire un peu complexe et j'espère simplifier le traitement côté serveur (PHP) en publiant nativement un tableau de n-uplets.
La première partie du formulaire représente un tilisateur:
La deuxième partie du formulaire représente un Tree:
Le problème est que je dois pouvoir POST multiple Arbres pour un seul tilisateur sous la même forme. J'aimerais envoyer l’information en tant que simple tilisateur avec un tableau de arbres mais cela peut être trop complexe à faire avec un formulaire. La seule chose qui me vient à l’esprit est d’utiliser javascript pour en créer Message JSON avec un objet User et un tableau d’objets Tree, mais il serait bien d’éviter que javascript ne supporte plus d’utilisateurs (certaines personnes ont des scripts désactivés).
<input type="text" name="firstname">
<input type="text" name="lastname">
<input type="text" name="email">
<input type="text" name="address">
<input type="text" name="tree[tree1][fruit]">
<input type="text" name="tree[tree1][height]">
<input type="text" name="tree[tree2][fruit]">
<input type="text" name="tree[tree2][height]">
<input type="text" name="tree[tree3][fruit]">
<input type="text" name="tree[tree3][height]">
il devrait se retrouver ainsi dans le tableau $ _POST [] (format PHP pour une visualisation aisée)
$_POST[] = array(
'firstname'=>'value',
'lastname'=>'value',
'email'=>'value',
'address'=>'value',
'tree' => array(
'tree1'=>array(
'fruit'=>'value',
'height'=>'value'
),
'tree2'=>array(
'fruit'=>'value',
'height'=>'value'
),
'tree3'=>array(
'fruit'=>'value',
'height'=>'value'
)
)
)
Vous pouvez également publier plusieurs entrées avec le même nom et les enregistrer dans un tableau en ajoutant des crochets vides au nom de l'entrée, comme suit:
<input type="text" name="comment[]" value="comment1"/>
<input type="text" name="comment[]" value="comment2"/>
<input type="text" name="comment[]" value="comment3"/>
<input type="text" name="comment[]" value="comment4"/>
Si vous utilisez php:
print_r($_POST['comment'])
vous obtiendrez ceci:
Array ( [0] => 'comment1' [1] => 'comment2' [2] => 'comment3' [3] => 'comment4' )