Bonjour,

Voila je rencontre un petit problème avec mon code,
j'ai au premier lieu un formulaire avec un seul champs , ou je tape un nombre entier, ce nombre sera la taille d'un deuxième formulaire qui sera créer un fois je clique sur le bouton 'Ok', j'ai réussi à faire cela , mais je veux récupérer les valeurs entrées dans le second formulaire
cepandant le programme m'affiche seulement la dernière valeur saisie et non pas tous les valeurs.

Voici mon code:

<!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
        <form method="post">
            <fieldset >
                     <br/>
                 <label for="nom">Nbr Modalites</label>
                <input type="text" name="nbrM"  />
                <br />

                <input type="submit"  value="OK" class="sansLabel" />
                <br />

            </fieldset>
        </form>

</html>

<?php
if(isset($_POST['nbrM']))
    { 
        $nbrM =  $_POST['nbrM'];

    ?>
    <table>
    <th><label for="Modalités"> Modalites</label></th>
    <th><label for="Effectifs"> Effectifs</label></th>
 <form method="post">

                     <?php 

                     for ($i=0; $i<$nbrM; $i++) { 

                        ?>
                     <tr>
                         <td><input type="text" name="nbr"></td>
                         <td><input type="text" name="Ef"></td>
                     </tr>
                     <?php }?>
    </table>
                <br/>

                <input type="submit"  value="OK" class="sansLabel" />
                <br />

        </form>
           <?php 

}
?>

<?php
if(isset($_POST['nbr']) && isset($_POST['Ef'])) { 

        $Md =  $_POST['nbr'];
        $Ef =  $_POST['Ef'];

}

    ?>
    </body>

si vous avez une solution pour mon problème , veuillez m'aider s'ils vous plaît.
Merci d'avance.

5 réponses


SLK
Réponse acceptée

Salut,

c'est bizarre que ça ne fonctionne pas chez toi.
Normalement il n'y avait que ça à changer.

Attention quand même dans ton HTML,
tu as des balises imbriquées qui ne devraient pas l'être :

  • table et form
  • body et html

Indente un peu le code pour mieux voir ce genre de choses.
Surtout pour un message sur un forum.

En tous cas ce qu'a dit eltharin fonctionne bien :

 <!DOCTYPE html>
<html>
<head>
    <title></title>
</head>
<body>
    <form method="post">
        <fieldset >
            <br/>
            <label for="nom">Nbr Modalites</label>
            <input type="text" name="nbrM"  />
            <br />

            <input type="submit"  value="OK" class="sansLabel" />
            <br />
        </fieldset>
    </form>

<?php
if (isset($_POST['nbrM']))
{ 
    $nbrM =  $_POST['nbrM']; ?>

    <form method="post">
        <table>
            <thead>
                <tr>
                    <th><label for="Modalités"> Modalites</label></th>
                    <th><label for="Effectifs"> Effectifs</label></th>
                </tr>
            </thead>
            </tbody>
                <?php 
                for ($i = 0; $i < $nbrM; $i++) { ?>
                    <tr>
                        <td><input type="text" name="nbr[]"></td>
                        <td><input type="text" name="Ef[]"></td>
                    </tr><?php 
                }?>
            </tbody>
        </table>
        <br/>

        <input type="submit"  value="OK" class="sansLabel" />
        <br />
    </form><?php 
}

if (isset($_POST['nbr']) && isset($_POST['Ef'])) { 
    $Md =  $_POST['nbr'];
    $Ef =  $_POST['Ef'];

    echo '<pre>';
    print_r($_POST['nbr']);
    echo '</pre>';

    echo '<pre>';
    print_r($_POST['Ef']);
    echo '</pre>';
}

?>
</body>
</html>

Dis nous plus précisément ce qui ne fonctionne pas, peut-être que tu voulais parler d'autre chose ?

(Attention aux noms de variables en commençant par une majuscule, c'est hors conventions, ça fait bizarre à lire.
En général on préfère éviter)

Bonjour,
alors déjà, ce serait bien de regarder les autres message du forum car ton problème est déjà apparu pas mal de fois.

pour ton probleme il suffit juste de mettre des crochet dans le name pour avoir un tableau et non plus une simple variable :

 <td><input type="text" name="nbr"></td>
<td><input type="text" name="Ef"></td>

devient :

 <td><input type="text" name="nbr[]"></td>
<td><input type="text" name="Ef[]"></td>
Sanae
Auteur

Merci beaucoup pour ta réponse,
A bon , je n'ai pas fait attention que ce problème est déja apparu dans le forum
Je vais essayer ta réponse.Merci

Sanae
Auteur

@eltharin
S'ils vous plaît si tu as les liens vers les posts qui posent le même problème , car je ne les ai pas trouvés.
j'ai testé votre solution mais c'est toujours le même résultat.

Sanae
Auteur

C'est bon , le programme fonctionne bien. Merci beaucoup pour vos aides et vos réponses.