Bonjour,
Je cherche à réaliser un formulaire avec un champ de saisie unique et un bouton "Ajouter".
A la validation - appui sur "Ajouter" - je veux réafficher le formulaire avec la ligne précédemment saisie et une nouvelle ligne vide de saisie.
Et ainsi de suite.
Je passe par un tableau indexé de dimension 1 pour récupérer les saisies.
Le but est par la suite d'étendre cette application à une ligne de formulaire composée de plusieurs champs et traitée avec un tableau associatif multidimensionnel.
Pour l'instant seule est prise en compte la dernière ligne saisie, les autres variables postées ne sont pas reconnues. Elles sont écrasées, en cause sans doute la syntaxe de l'attribut name ( saisie_article ), et peut être bien la boucle aussi.
Ci - dessous mon code.
Auriez - vous une idée? Merci!
Commencer par appeler dev3.php :
dev3.php:
<?php
// initialise les variables
$article = array(); // vide, destiné à recevoir les saisies
$nb_art = 0; // compteur sur nombre de saisie
// Récup variables formulaire
$ajout_art = $_REQUEST['ajout_art']; // recup nom bouton de validation
switch ($ajout_art){ // si validation
case "Ajout": // Réferencer article supplémentaire
if (isset($_REQUEST['saisie_article'])){
for($i=0;$i<=$nb_art;$i++){
// recopie saisie dans tableau
$article[$i]= $_REQUEST['saisie_article'];
}
foreach ($article as $valeur){ // test affichage saisies formulaire
echo $valeur.'<br>';
}
}
$nb_art = $_REQUEST['nb_art'];
$nb_art++; // incrémentation compteur nombre de saisie
break;
default:
}
// Afficher formulaire
include('affich3.php');
echo $nb_art; // test affichage compteur
?>
affich3.php:
<table>
<form name="devis_modif" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<tr>
<td>Article :</td>
</tr>
<?php for($i=0;$i<=$nb_art;$i++){ ?>
<tr>
<td><input type="text" name="saisie_article" value="<?php echo $article[$i]; ?>" size="30" maxlength="35"></td>
</tr>
<?php } ?>
<tr>
<td>Ajouter un article</td>
<!-- Référencer un autre article -->
<td>
<input type="hidden" name="nb_art" value="<?php echo $nb_art; ?>">
<input type="submit" name="ajout_art" value="Ajout">
</td>
</tr>
</form>
</table>