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 :

Incrémenter les name d'un formulaire dans une boucle


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Points : 35
    Points
    35
    Par défaut Incrémenter les name d'un formulaire dans une boucle
    Hello à tous,

    Je début en php et je me suis lancer dans un projet pour apprendre sur du concret. Mais je suis bloquer...
    voilà la situation.
    J'ai une page1.php pour que l'utilisateur entre dans un champs texte le nombre de formulaire à remplir.
    on arrive sur une page2.php ou le nombre de formulaire est définie par la variable $nb_ics (ce que l'utilisateur à choisit dans la page prcédente).
    Jusqu'à là, pas de soucis. Mes X formulaire apparraisse bien en fonction de $nb_ics.

    Pour que ça marche, j'ai fais ça :


    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
     
    <form method="post" action="insert_move_ics.php" onSubmit='return valider_formulaire(this)'>
    <?
    ///boucle de configuration d'affichage du nombre de formulaire en fonction du nom sélectionné dans move_ics.php
    $i = 0;
    while ($i < $nb_ics) {
    ?>
     
    Le formulaire
     
    <? //fin de la boucle de configuration d'affichage du nombre de formulaire en fonction du nom sélectionné dans move_ics.php
        $i++;
    }
    ?>
    <input type="hidden" name="nb_ics" value="<? echo $nb_ics; ?>" >
    <input type="submit" value="valider" >


    Il y a 1 seul form, et 1 seul sumit, mais plusieurs champs nom, prénom...
    Le prob est que je doit pouvoir incrémenter les name:"" de ces champs pour pouvoir dans ma page3.php les inserer dans la bdd.
    Est ce que qu'elqu'un pourrais m'aider à m'en sortir?

    Merci d'avance,
    +
    DaD

    PS : je vous mets aussi le formuaire qui est dans ma boucle :

    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
     
    <table width="100%"  border="0" cellspacing="10" cellpadding="0" class="textenoir">
      <tr>
        <td>Centre  d'o&ugrave; provient l'ICS <em>(ou nom du vendeur en cas de d&eacute;pot perso)</em> * : </td>
        <td><input type="text" name="centre_from"></td>
      </tr>
      <tr>
        <td>Ville dans laquelle ce trouve ce centre * : </td>
        <td><input type="text" name="ville_from"></td>
      </tr>
      <tr>
        <td>Centre  o&ugrave; &agrave; &eacute;t&eacute; d&eacute;pos&eacute; l'ICS <em>(ou nom du vendeur en cas de d&eacute;pot perso)</em>  * : </td>
        <td><input type="text" name="centre_to"></td>
      </tr>
      <tr>
        <td>Ville dans laquelle ce trouve ce centre * : </td>
        <td><input type="text" name="ville_to"></td>
      </tr>
      <tr>
        <td>R&eacute;f&eacute;rence article : </td>
        <td><input name="code_article" type="text" size="7" maxlength="7"></td>
      </tr>
      <tr>
        <td>Num&eacute;ro de s&eacute;rie * : </td>
        <td><input name="serial" type="text" size="8" maxlength="8"></td>
      </tr>
      <tr>
        <td>Num&eacute;ro du bon de transport : </td>
        <td><input name="bon_transport" type="text" id="bon_transport"></td>
      </tr>
    </table>
      <table width="100%"  border="0" cellspacing="10" cellpadding="0" class="textenoir">
        <tr>
          <td><div align="center">* : Champs obligatoires </div></td>
        </tr>
      </table><br>
     <hr>
    +
    DaD

  2. #2
    Membre habitué Avatar de H-bil
    Inscrit en
    Février 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 337
    Points : 151
    Points
    151
    Par défaut
    salut
    tu peux a chaque fois concaténer le name de ton champs avec le $i
    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $nom="centre_from".$i
    <input type="text" name="<?php echo $nom ; ?>">
    @+
    Ubuntu 8.04 LTS Hardy

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Points : 35
    Points
    35
    Par défaut
    Merci de ta réponse...

    et si je mets ça, je me retrouve avec des variable de cette forme dans la page suivante :

    $nom01
    $nom02
    $nom03

    si il y a 3 formulaire, c'est ça?

  4. #4
    Membre habitué Avatar de H-bil
    Inscrit en
    Février 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 337
    Points : 151
    Points
    151
    Par défaut
    dans la page insert_move_ics.php, si nb_ics egale à 3, tu auras :
    centre_from1 , ville_from1, centre_to1 ..........
    centre_from2, ville_from2, centre_to2 ..........
    centre_from3, ville_from3, centre_to3 ..........
    @+
    Ubuntu 8.04 LTS Hardy

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Points : 35
    Points
    35
    Par défaut
    Merci beaucoups H bil, tu me retire une grosse épine du pied...
    je n'ai pas encore acquis le type de raisonnement qu'il faut pour développer, du coups, je galerre sur des trucs qui sont apparement simple pour les developpeur expérimenter....
    enfin ça viendra....

    Merci encore.
    +
    DaD

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Points : 35
    Points
    35
    Par défaut
    Je t'embete encore un peu, H-Bil,

    mais je n'arrive pas à récupérer mes variables...

    Voilà ce que j'ai mis dans ma boucle :

    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
     
     
    <form method="post" action="temp.php" onSubmit='return valider_formulaire(this)'>
    <?
    ///boucle de configuration d'affichage du nombre de formulaire en fonction du nom sélectionné dans move_ics.php
    $i = 0;
    $centre_from="centre_from".$i;
    $ville_from="ville_from".$i;
    $centre_to="centre_to".$i;
    $ville_to="ville_to".$i;
    $code_article="code_article".$i;
    $serial="serial".$i;
    $bon_transport="bon_transport".$i;
    while ($i < $nb_ics) {
    ?>
    <table width="100%"  border="0" cellspacing="10" cellpadding="0" class="textenoir">
      <tr>
        <td>Centre  d'o&ugrave; provient l'ICS <em>(ou nom du vendeur en cas de d&eacute;pot perso)</em> * : </td>
        <td><input type="text" name=="<?php echo $centre_from ; ?>"></td>
      </tr>
      <tr>
        <td>Ville dans laquelle ce trouve ce centre * : </td>
        <td><input type="text" name=="<?php echo $ville_from ; ?>"></td>
      </tr>
      <tr>
        <td>Centre  o&ugrave; &agrave; &eacute;t&eacute; d&eacute;pos&eacute; l'ICS <em>(ou nom du vendeur en cas de d&eacute;pot perso)</em>  * : </td>
        <td><input type="text" name=="<?php echo $centre_to ; ?>"></td>
      </tr>
      <tr>
        <td>Ville dans laquelle ce trouve ce centre * : </td>
        <td><input type="text" name=="<?php echo $ville_to ; ?>"></td>
      </tr>
      <tr>
        <td>R&eacute;f&eacute;rence article : </td>
        <td><input name=="<?php echo $code_article ; ?>" type="text" size="7" maxlength="7"></td>
      </tr>
      <tr>
        <td>Num&eacute;ro de s&eacute;rie * : </td>
        <td><input name=="<?php echo $serial ; ?>" type="text" size="8" maxlength="8"></td>
      </tr>
      <tr>
        <td>Num&eacute;ro du bon de transport : </td>
        <td><input name=="<?php echo $bon_transport ; ?>" type="text" id="bon_transport"></td>
      </tr>
    </table>
      <table width="100%"  border="0" cellspacing="10" cellpadding="0" class="textenoir">
        <tr>
          <td><div align="center">* : Champs obligatoires </div></td>
        </tr>
      </table><br>
     <hr>
    <? //fin de la boucle de configuration d'affichage du nombre de formulaire en fonction du nom sélectionné dans move_ics.php
        $i++;
    }
    ?>

    J'ai router ça, comme tu le vois vers un fichier temp.php pour tester si je retrouve bien mes variable...
    voilà le code de temp.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    <?
    echo $_POST['nb_ics'],'<br>';
    echo $_POST['centre_from1'],'<br>';
    echo $_POST['centre_from2'],'<br>';
    echo $_POST['centre_from3'],'<br>';
    ?>
    Quand j'execute, il me dit qu'il ne trouve pas les variables :

    3

    Notice: Undefined index: centre_from1 in c:\program files\easyphp1-8\www\biotronik\temp.php on line 10


    Notice: Undefined index: centre_from2 in c:\program files\easyphp1-8\www\biotronik\temp.php on line 11


    Notice: Undefined index: centre_from3 in c:\program files\easyphp1-8\www\biotronik\temp.php on line 12


    tu vois ce qui cloche? j'ai mal formuler un truc?

  7. #7
    Membre habitué Avatar de H-bil
    Inscrit en
    Février 2006
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 337
    Points : 151
    Points
    151
    Par défaut
    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
     
    <form method="post" action="temp.php" onSubmit='return valider_formulaire(this)'>
    <?
    ///boucle de configuration d'affichage du nombre de formulaire en fonction du nom sélectionné dans move_ics.php
    $i = 1;
    while ($i <= $nb_ics) {
    $centre_from="centre_from".$i;
    $ville_from="ville_from".$i;
    $centre_to="centre_to".$i;
    $ville_to="ville_to".$i;
    $code_article="code_article".$i;
    $serial="serial".$i;
    $bon_transport="bon_transport".$i;
    ?>
    <table width="100%"  border="0" cellspacing="10" cellpadding="0" class="textenoir">
      <tr>
        <td>Centre  d'o&ugrave; provient l'ICS <em>(ou nom du vendeur en cas de d&eacute;pot perso)</em> * : </td>
        <td><input type="text" name="<?php echo $centre_from ; ?>"></td>
      </tr>
      <tr>
        <td>Ville dans laquelle ce trouve ce centre * : </td>
        <td><input type="text" name="<?php echo $ville_from ; ?>"></td>
      </tr>
      <tr>
        <td>Centre  o&ugrave; &agrave; &eacute;t&eacute; d&eacute;pos&eacute; l'ICS <em>(ou nom du vendeur en cas de d&eacute;pot perso)</em>  * : </td>
        <td><input type="text" name="<?php echo $centre_to ; ?>"></td>
      </tr>
      <tr>
        <td>Ville dans laquelle ce trouve ce centre * : </td>
        <td><input type="text" name="<?php echo $ville_to ; ?>"></td>
      </tr>
      <tr>
        <td>R&eacute;f&eacute;rence article : </td>
        <td><input name="<?php echo $code_article ; ?>" type="text" size="7" maxlength="7"></td>
      </tr>
      <tr>
        <td>Num&eacute;ro de s&eacute;rie * : </td>
        <td><input name="<?php echo $serial ; ?>" type="text" size="8" maxlength="8"></td>
      </tr>
      <tr>
        <td>Num&eacute;ro du bon de transport : </td>
        <td><input name="<?php echo $bon_transport ; ?>" type="text" id="bon_transport"></td>
      </tr>
    </table>
      <table width="100%"  border="0" cellspacing="10" cellpadding="0" class="textenoir">
        <tr>
          <td><div align="center">* : Champs obligatoires </div></td>
        </tr>
      </table><br>
     <hr>
    <? //fin de la boucle de configuration d'affichage du nombre de formulaire en fonction du nom sélectionné dans move_ics.php
       $i++; 
    }
    ?>
    essaie ce code là sa marche chez moi
    @+
    Ubuntu 8.04 LTS Hardy

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Points : 35
    Points
    35
    Par défaut
    Vraiment super, et effectivement ça marche maintenant chez moi aussi...
    Je vois bien où j'avais fais une erreure...

    Bon, il me reste à rentrer ces données dans ma base...

    jusqu'à là, j'avais coder une partie qui fonctionnait très bien avec 1 seul formulaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    ///DEBUT insertion des données dans la base
     
    //connection à la BDD
    mysql_select_db($database_dbprotect, $dbprotect);
    // insertion dans la base de donnée du move
    $sql = 'INSERT INTO ics (id_ics,representant,auteur,date,centre_from, ville_from, ville_to,centre_to,code_article,serial,bon_transport, numero_retour) VALUES ("", "'.$nom.'", "'.$nom.'", "'.$date.'", "'.$_POST['centre_from'].'", "'.$_POST['ville_from'].'", "'.$_POST['ville_to'].'", "'.$_POST['centre_to'].'", "'.$_POST['code_article'].'", "'.$_POST['serial'].'", "'.$_POST['bon_transport'].'","'.$numero_retour.'")';
    //message d'erreur en cas de problem
    mysql_query ($sql, $dbprotect) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());
    // Libération des ressources associées au jeu de résultats
    je suppose qu'il faut que je fasse encore une boucle dans laquelle je remet ces lignes, mais au lieu des Values, je mets value.$i ?

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 60
    Points : 35
    Points
    35
    Par défaut
    C'est bon, j'ai trouvé....g galerer pour trouver la synthaxe, mais c bueno...
    Merci mille fois pour ton aide...
    +
    DaD

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

Discussions similaires

  1. Récupérer les champs d'un formulaire dans une jsp
    Par lalyly dans le forum Struts 1
    Réponses: 1
    Dernier message: 19/04/2007, 10h50
  2. Réponses: 7
    Dernier message: 18/01/2007, 15h03
  3. Copier les valeurs d'un formulaire dans une table
    Par Cyphen dans le forum Access
    Réponses: 4
    Dernier message: 19/06/2006, 10h45
  4. Comment recuperer les info d'un formulaire dans une boite de dialogue
    Par frutix dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/05/2006, 11h42
  5. Afficher les élements d'un formulaire dans une autre fenetre
    Par BernardT dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 11/12/2005, 22h52

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