remplir un tableau dynamiquement

a marqué ce sujet comme résolu.

Bonjour.

J’aimerai écrire un code php avec un formulaire qui permet d’entrer des nombres dans un tableau. Le premier formulaire contient juste le nombre total à rentrer. Voici le script du premier formulaire :

<html>
<head>
<title>
saisie de nombres pour les stocker dans un tableau
</title>
</head>
<body>
<form name = "formulaire"
action = "second_script.php"
method = "post">
taper le nombre total de nombres à stocker dans le tableau
<input type = "text"
name = "TotalNombres" />
<input type = "submit"
value = "aller dans l'étape 2 pour entrer les nombres">
</form>
</body>
</html>

Le second formulaire contient les nombres à rentrer. Par exemple, si le total des nombres à entrer est de 2, il y a juste 2 nombres à rentrer. Voici le second script :

<html>
<head>
<title>
saisie d'un nombres dans le tableau
</title>
</head>
<body>
<form name = "formulaire"
action = "troisieme_script.php"
method = "post">
taper un nombre à ranger dans le tableau
<input type = "text"
name = "TableauNombres" />
<input type = "submit"
value = "ranger le nombre dans le tableau">
</form>
</body>
</html>

C’est ce second script que je veux entrer dans la boucle. Voici le troisième script :

<?php
$TotalNombres = $_POST ['TotalNombres'] ;
$TableauNombres = $_POST ['TableauNombres'] ;
TableauNombres = array ($TotalNombres) ;
// je ne sais pas si on peut faire ça
/*
Il faut entrer les nombres dans une boucle qui va de 0 jusqu'au nombre total à rentrer et demander à l'utilisateur d'entrer un nombre.
*/
for ($compteur = 0 ; $compteur < $TotalNombres ;
$compteur ++)
{
/* 
je voudrais insérer le second script avec la variable compteur en paramètre pour faire avancer le compteur 
quand un nombre est rentré
*/
echo $TableauNombres [$compteur] . ' ' ;
// l'espace sépare les nombres affichés
}
?>

Est-il possible en php de poser la question à l’utilisateur du nombre à rentrer à l’intérieur d’une boucle for, car je ne veux pas écrire dans un formulaire nombre1, nombre2, nombre3, nombre4, etc.

Merci d’avance pour vos réponses, ce qui me permettra d’écrire d’autres scripts du même style pour entre des informations !

+0 -0

Salut

Je vois au moins deux possibilités.

  1. Le second formulaire contient autant de champ que ce qui est spécifié pour $TotalNombres.
  2. Le second formulaire est appelé autant de fois que ce qui est spécifié pour $TotalNombres.

A mon avis, la première solution est plus simple à mettre en place, et du coup $_POST peut être directement équivalent $TableauNombres, à la valeur de l'<input type="submit" /> près (je te conseille de remplacer par <button type="submit"> ici la valeur </button>). Du coup, je mettrais :

  • les lignes 1 à 10 du second code entre les lignes 4 et 9 du troisième ;
  • les lignes 11 et 12 dans la boucle, avec l’ajout d’un suffixe [] à l’attribut name ;
  • le reste après la boucle.

La seconde solution implique qu’à chaque affichage du formulaire, on conserve dans deux champs cachés non seulement $TotalNombres, mais aussi $TableauNombres sous une forme ou une autre (champs cachés pour chaque valeur ou unique champ contenant une version sérialisée des données) pour savoir ce qui a été saisi précédemment et aussi pour déterminer combien de saisies il reste/à laquelle on se retrouve. C’est faisable, mais me paraît plus complexe à gérer.

+0 -0

Au temps pour moi, j’avais loupé que tu mettais chaque attribut de balise sur une ligne propre, il faut prendre les lignes 11 à 13 dans la boucle et non juste 11 et 12.

Gratis pro remissiores magnus
<?php
$TotalNombres = $_POST['TotalNombres'];
$TableauNombres = $_POST['TableauNombres']; // Probablement inutile dans ce script
?>
<html>
<head>
<title>saisie de nombres dans le tableau</title>
</head>
<body>
<form name = "formulaire" action = "troisieme_script.php" method = "post">
<?php for ($compteur = 0; $compteur < $TotalNombres; $compteur++) { ?>
    taper un nombre à ranger dans le tableau
    <input type = "text" name = "TableauNombres[]" />
<?php } ?>
    <button type = "submit">ranger les nombres dans le tableau</button>
</form>
</body>
</html>
+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte