IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

récuperation des donnés d'un formulaire généré par boucle


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 24
    Points : 26
    Points
    26
    Par défaut récuperation des donnés d'un formulaire généré par boucle
    salut a toute l'équipe ,
    je fait un script pour une société d'assurance dans le cadre de mon stage de fin de formation pour l'obtention d'un diplôme " ts en informatique option: développeur web"
    je génère un formulaire html avec une boucle for , jusqu'au la tous marche comme je veux , mais les valeurs de 'name' de la balise <input> dans mon formulaire doivent être remplissent selon la valeur de compteur de la boucle parce que le nombre de formulaires changent en fonction du nombre du tiers dans un accident
    et voila se que je veux dire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    for ($cpt=1;$cp<=$nbtr,$cpt++)
    { 
    echo"
    <input type='text' name='nm.$v' value=''/>
    "
    };
    ?>
    mon problème est que je ne peux pas récupérer les donnés insérer et voila se que je fait dans le script du traitement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    for($cpt=1;$cpt<=$nbtr,$cpt++)
    {
    $_POST ['nm'.$v];
    }
    ?>
    et merci a l'avance d'avoir m'aider

  2. #2
    Membre actif
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Vatican

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2004
    Messages : 144
    Points : 238
    Points
    238
    Par défaut
    attribue la valeur $cpt et non pas $v

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
    for ($cpt=1;$cp<=$nbtr,$cpt++)
    {
    echo"
    <input type='text' name='nm.$cpt' value=''/>
    "
    };
    ?>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    for($cpt=1;$cpt<=$nbtr,$cpt++)
    {
    $_POST ['nm'.$cpt];
    }
    ?>

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    d'où il sort le $v dans le 1er code
    Edit : grilled !

    Tu peux aussi utiliser un tableau comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?php
     
    // création
    for ($cpt = 1 ; $cpt <= $nbtr ; ++$cpt)
    { 
        echo 
    <<<HTML
        <input type="text" name="nm[$cpt]" value="" />
    HTML;
    };
     
    // lecture
    $names = array();
    for ($cpt = 1 ; $cpt <= $nbtr ; ++$cpt)
    {
        // pense aussi à vérifier que la valeur est bien définie dans le $_POST 
        $names[] = $_POST['nm'][$cpt];    
    };
     
    ?>

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 24
    Points : 26
    Points
    26
    Par défaut
    le $v n'est pas plus qu'une erreur de frappe , en faite c'est une autre variable que j'utilise dans le script ,
    je vais essayer la solution qui propose d'utiliser un autre tableau dans le $_POST parce que j'ai essayé avec la 1ere solution et ça n'as pas marché malheureusement .
    sincèrement merci pour votre aide.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 24
    Points : 26
    Points
    26
    Par défaut
    voici le code que j'utilise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    <?php
    session_start ();
    echo  " <br/><br/><br/><br/>
    <form method='post' action='insertionassure1.php'/>
    <input type='submit' name='tr' value='ajoutez Tiers '/>
    </form>";
     
     
    if (isset ($_POST['tr']))
    {
    echo "<form method='post' action='insertionassure1.php'>
    <input type='text' value='Nombre de Tiers' name='nbtr'/>
    <input type='submit'>
    </form>";
    }
     
     
    if (isset ($_POST['nbtr']))
    {
     
    $cpt=$_POST['nbtr'];
    $_SESSION['nbtr']=$cpt;
    //array nmtr  ;
    for ($v=1;$v<=$cpt;$v++)
    {
    echo"
    <form method='post' action='insertionconducteurstest.php'/>
    <table align='center'>
    <p> Informations Tiers $v </p>
    <tr><td>
    <label for='nmtr'.$v>Nom</label></td><td>
    <input type='text' name=nmtr.$v /><br/><br/></td></tr><tr><td>
    <label for=pnmtr.$v>Prenom</label></td><td>
    <input type='text' name='pnmtr'.$v /><br/><br/></td></tr><tr><td>
    <label for='dtntr'.$v>Date de naissance </label></td><td>
    <input type='text' name='echo 'dtntr'.$v/><br/><br/></td></tr><tr><td>
    <label for='ldntr'.$v>Lieu de naissance </label></td><td>
    <input type='text' name='ldntr'.$v /><br/><br/></td></tr><tr><td>
    <label for='adrtr'.$v>Adresse </label></td><td>
    <input type='text' name='adrtr'.$v /><br/><br/></td></tr><tr><td>
    <label for='cmntr'.$v>Commune </label></td><td>
    <input type='text' name='cmntr'.$v /><br/><br/></td></tr><tr><td>
    <label for='wlatr'.$v>Wilaya </label></td><td>
    <input type='text' name='wlatr'.$v/><br/><br/></td></tr><tr><td>
    <label for='teltr'.$v>Télephone</label></td><td>
    <input type='text' name='teltr'.$v /><br/><br/></td></tr><tr><td>
    <label for='peretr'.$v>Fils de </label></td><td>
    <input type='text' name='peretr'.$v /><br/><br/></td></tr><tr><td>
    <label for='meretr'.$v>Et de</label></td><td>
    <input type='text' name='meretr'.$v /><br/><br/></td></tr><tr><td>
    <label for='stfamiltr'.$v>Situation Familiale </label></td><td>
    <input type='text' name='stfamiltr'.$v /><br/><br/></td></tr><tr><td>
    <label for='foncttr'.$v>Fonction </label></td><td>
    <input type='text' name='foncttr'.$v /><br/><br/></td></tr><tr><td>
    <label for='empltr'.$v>Employeur </label></td><td>
    <input type='text' name='empltr'.$v /><br/><br/></td></tr><tr><td>
    <label for='sjtr'.$v>Secteur Juridique </label></td><td>
    <input type='text' name='sjtr'.$v /><br/><br/></td></tr><tr><td>
    <label for='sectactitr'.$v>Secteur d'activite </label></td><td>
    <input type='text' name='sectactitr'.$v /><br/><br/></td></tr></table>
    <input type='reset' value='réinitializer'>
    <input type='submit'/>
    </form>
    ";
    }
    }
    ?>
    et le script de traitement est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    <?php
    session_start()
    $cpt=$_SESSION['nbtr'];
    for ($v=1;$v<=$cpt;$v++)
    {
     
    if (isset($_POST ["nmtr".$v]))
    {
    $_SESSION["nmtr".$v]=$_POST["nmtr".$v]; 
    }
    if (empty($_POST ["nmtr".$v]))  echo "error";
    if (isset($_POST['pnmtr'.$v]))
    $_SESSION['$pnmtr'.$v]=$_POST['pnmtr'.$v];
    if (isset($_POST['dtntr'.$v]))
    $_SESSION['dtntr'.$v]=$_POST['dtntr'.$v];
    if (isset($_POST['ldntr'.$v]))
    $_SESSION['ldntr'.$v]=$_POST['ldntr'.$v];
    if (isset($_POST['adrtr'.$v]))
    $_SESSION['adrtr'.$v]=$_POST['adrtr'.$v];
    if (isset($_POST['cmntr'.$v]))
    $_SESSION['cmntr'.$v]=$_POST['cmntr'.$v];
    if (isset($_POST['wlatr'.$v]))
    $_SESSION['wlatr'.$v]=$_POST['wlatr'.$v];
    if (isset($_POST['teltr'.$v]))
    $_SESSION['teltr'.$v]=$_POST['teltr'.$v];
    if (isset($_POST['peretr'.$v]))
    $_SESSION['peretr'.$v]=$_POST['peretr'.$v];
    if (isset($_POST['meretr'.$v]))
    $_SESSION['meretr'.$v]=$_POST['meretr'.$v];
    if (isset($_POST['stfamiltr'.$v]))
    $_SESSION['stfamiltr'.$v]=$_POST['stfamiltr'.$v];
    if (isset($_POST['foncttr'.$v]))
    $_SESSION['foncttr'.$v]=$_POST['foncttr'.$v];
    if (isset($_POST['empltr'.$v]))
    $_SESSION['empltr'.$v]=$_POST['empltr'.$v];
    if (isset($_POST['sjtr'.$v]))
    $_SESSION['sjtr'.$v]=$_POST['sjtr'.$v];
    if (isset($_POST['sectactitr'.$v]))
    $_SESSION['sectactitr'.$v]=$_POST['sectactitr'.$v];
    }
     
    ?>

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    j'ai repris ton formulaire afin de l'améliorer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    <?php
    session_start();
     
    echo 
    <<<HTML
    <br/><br/><br/><br/>
    <form method="post" action="insertionassure1.php"
        <input type="submit" name="tr" value="ajoutez Tiers " />
    </form>
    HTML;
     
    if (isset ($_POST['tr']))
    {
        echo 
    <<<HTML
    <form method="post" action="insertionassure1.php">
        <input type="text" value="Nombre de Tiers" name="nbtr" />
        <input type="submit">
    </form>
    HTML;
    }
     
     
    if (isset($_POST['nbtr']))
    {
        $cpt              = (int)($_POST['nbtr']);
        $_SESSION['nbtr'] = $cpt;
        for ($i = 1 ; $i <= $cpt ; ++$i)
        {
            echo
    <<<HTML
    <form method="post" action="insertionconducteurstest.php">
        <table align="center">
            <p> Informations Tiers {$i} </p>
            <tr>
                <td><label for="nom{$i}">Nom </label></td>
                <td><input id="nom{$i}" type="text" name="cdts[{$i}]['nom']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="prenom{$i}">Prenom </label></td>
                <td><input id="prenom{$i}" type="text" name="cdts[{$i}]['prenom']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="dnaiss{$i}">Date de naissance </label></td>
                <td><input id="dnaiss{$i}" type="text" name="cdts[{$i}]['dnaiss']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="lnaiss{$i}">Lieu de naissance </label></td>
                <td><input id="lnaiss{$i}" type="text" name="cdts[{$i}]['lnaiss']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="adr{$i}">Adresse </label></td>
                <td><input id="adr{$i}" type="text" name="cdts[{$i}]['adr']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="commune{$i}">Commune </label></td>
                <td><input id="commune{$i}" type="text" name="cdts[{$i}]['commune']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="wilaya{$i}".$i>Wilaya </label></td>
                <td><input id="wilaya{$i}" type="text" name="cdts[{$i}]['wilaya']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="tel{$i}">Télephone</label></td>
                <td><input id="tel{$i}" type="text" name="cdts[{$i}]['tel']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="pere{$i}">Fils de </label></td>
                <td><input id="pere{$i}" type="text" name="cdts[{$i}]['pere']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="mere{$i}">Mère de </label></td>
                <td><input id="mere{$i}" type="text" name="cdts[{$i}]['mere']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="sitfam{$i}">Situation familiale </label></td>
                <td><input id="sitfam{$i}" type="text" name="cdts[{$i}]['sitfam']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="fonc{$i}">Fonction </label></td>
                <td><input id="fonc{$i}" type="text" name="cdts[{$i}]['fonction']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="empl{$i}">Employeur </label></td>
                <td><input id="empl{$i}" type="text" name="cdts[{$i}]['employeur']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="jur{$i}">Secteur Juridique </label></td>
                <td><input id="jur{$i} "type="text" name="cdts[{$i}]['secjur']" /><br/><br/></td>
            </tr>
            <tr>
                <td><label for="act{$i}">Secteur d'activite </label></td>
                <td><input id="act{$i}" type="text" name="cdts[{$i}]['activite']" /><br/><br/></td>
            </tr>
        </table>
        <input type="reset" value="réinitialiser" />
        <input type="submit" />
    </form>
    HTML;
        }
    }
    ?>
    J'ai procédé autrement : j'ai regroupé chaque jeu de données par numéro de tiers :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <?php
     
    $_POST['cdts'] = array(
        1 => array(
            'nom' => ...,
            'prenom' => ...,
            'dnaiss' => ...,
            'lnaiss' => ...,
            'adresse' => ...,
            'commune' => ...,
            'wilaya' => ...,
            'tel' => ...,
            'pere' => ...,
            'mere' => ...,
            'sitfam' => ...,
            'fonction' => ...,
            'employeur' => ...,
            'secjur' => ...,
            'activite' => ...
        ),
        2 => array(
            'nom' => ...,
            'prenom' => ...,
            'dnaiss' => ...,
            'lnaiss' => ...,
            'adresse' => ...,
            'commune' => ...,
            'wilaya' => ...,
            'tel' => ...,
            'pere' => ...,
            'mere' => ...,
            'sitfam' => ...,
            'fonction' => ...,
            'employeur' => ...,
            'secjur' => ...,
            'activite' => ...
        )
    ):
    comme ça c'est plus cohérent
    ensuite l'attribut for de <label></label> ne fonctionne que pour l'id du contrôle qui lui est rattaché.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    24
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2012
    Messages : 24
    Points : 26
    Points
    26
    Par défaut
    merci Martin ,
    vous m'avez aidé a retrouver l'erreur qui ma bloqué pendant des journées ,
    C'était une erreur dans ma syntaxe finalement
    je remercie dieu de m'avoir guidé a ce forum .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récuperer des données par program Java
    Par irouni dans le forum Langage
    Réponses: 1
    Dernier message: 08/02/2008, 11h02
  2. récuperer des données depuis un formulaire
    Par anaaa dans le forum Langage
    Réponses: 2
    Dernier message: 03/12/2007, 11h34
  3. [Mail] Renvoi des données d'un formulaire par mail
    Par ox@na dans le forum Langage
    Réponses: 6
    Dernier message: 11/01/2007, 22h02
  4. Récuperation des données envoyées par Form en POST
    Par bobatel dans le forum Langage
    Réponses: 9
    Dernier message: 26/04/2006, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo