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 :

Plusieurs formulaires soumission unique


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 11
    Points : 5
    Points
    5
    Par défaut Plusieurs formulaires soumission unique
    Bonjour,

    Je souhaite faire un tableau composé de plusieurs formulaires avec un seul bouton de validation pour mettre à jour les données :

    nom1|prenom1|ville1
    nom2|prenom2|ville2

    bouton Submit unique pour les deux formulaires

    A la soumission,

    nom1,nom2 vont dans le champ nom de la BDD
    prenom1,prenom2 vont dans le champ prenom de la BDD
    ville1,ville2 vont dans le champ ville de la BDD

    Comment procéder ?

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Points : 281
    Points
    281
    Par défaut
    Pourquoi utiliser plusieurs formulaires ? Un seul devrait très bien faire l'affaire.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    en fait la question est :

    comment insérer plusieurs lignes dans une base de données à partir d'un seul formulaire soumis?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 87
    Points : 48
    Points
    48
    Par défaut
    ces champs nom1 adresse1 ... vont etre des champs de texte bien sur bah tu n'as qu'à les recuperer dans la page suivante et faire une requete INSERT ???

    tu connais un peu MySqm

  5. #5
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par sebgosse Voir le message
    Bonjour,
    nom1|prenom1|ville1
    nom2|prenom2|ville2
    Bonjour

    en premier on capte proprement les variables passées en _POST je supposes.
    ensuite on ouvre MYSQL puis on fait les ajouts, ce qui donne un truc comme cela.
    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
     
    <?PHP
    if (isset($_POST["nom1"])) $nom1=htmlentities(trim($_POST["nom1"]));
        else $nom1="";
    if (isset($_POST["nom2"])) $nom2=htmlentities(trim($_POST["nom2"]));
        else $nom2="";
    if (isset($_POST["prenom1"])) $prenom1=htmlentities(trim($_POST["prenom1"]));
        else $prenom1="";
    if (isset($_POST["prenom2"])) $prenom2=htmlentities(trim($_POST["prenom2"]));
        else $prenom2="";
    if (isset($_POST["ville1"])) $ville1=htmlentities(trim($_POST["ville1"]));
        else $ville1="";
    if (isset($_POST["ville2"])) $ville2=htmlentities(trim($_POST["ville2"]));
        else $ville2="";
     
    // ===== alors les ajouts =============
    $Flag1=mysql_connect($Serveur,$User,$Mdp) OR die('Erreur connexion ');
    $Flag2=mysql_select_db($MaBase) OR die('Erreur connexion ');
    $Flag3=mysql_query ("
    INSERT INTO `tatable` (`LeNom`, `LePrenom`, `LaVille`) 
    VALUES
    ($nom1, $prenom1, $ville1),
    ($nom2, $prenom2, $ville2);
    ");    
     
    mysql_close();

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Oui pardon mais je n'ai pas que deux lignes à insérer, c'etait un exemple, je peux en avoir une 50aine.

    Sinon oui je connais mysql.

    C'est un formulaire qui cherche différentes lignes dans une BD selon certains critères, pour les mettre à jour.
    Je souhaiterais mettre un seul bouton submit pour mettre à jour l'ensemble des lignes que j'affiche et éviter d'avoir un submit à chaque ligne.

    Je cherche du coté de la boucle foreach pour traiter chaque ligne en fonction de son identifiant mais je ne trouve pas.


    Merci pour l'aide.

  7. #7
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par sebgosse Voir le message
    Oui pardon mais je n'ai pas que deux lignes à insérer, c'etait un exemple, je peux en avoir une 50aine.
    Sinon oui je connais mysql.
    C'est un formulaire qui cherche différentes lignes dans une BD selon certains critères, pour les mettre à jour.
    Je souhaiterais mettre un seul bouton submit pour mettre à jour l'ensemble des lignes que j'affiche et éviter d'avoir un submit à chaque ligne.
    Je cherche du coté de la boucle foreach pour traiter chaque ligne en fonction de son identifiant mais je ne trouve pas.
    Merci pour l'aide.
    J'essais de comprendre,
    tu lis sur une page dans une ou des tables MYSQL , selon tes critéres a toi,
    ça va créer un affichage qui s'incruste dans un FORM donc sous forme INPUT
    avec modification possible et quand tu valide tu veux tout récupérer d'un coup !

    C' est pareil, sauf que tu ne connais pas d'avance le nombre !
    mais ça l'array du POST te le dira

    dans chaque ligne coté saisie il faut mettre un INPUT HIDDEN avec l'index du data ...

    Bon tu me dis si j'ais pas bien compris

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    oui c'est exactement ça mais c'est pour traiter l' "array du POST" que je suis bloqué.

  9. #9
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par sebgosse Voir le message
    oui c'est exactement ça mais c'est pour traiter l' "array du POST" que je suis bloqué.
    Si tout est pret, coté saisie dans le PHP appelé par le FORM tu peux utiliser un controle de tout ce que tu reçois
    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
     
    echo ("<pre>");
    print_r($_SESSION);
    echo ("</pre>");
     
     
    echo ("<pre>");
    print_r($_POST);
    echo ("</pre>");
     
     
     
    echo ("<pre>");
    print_r($_GET);
    echo ("</pre>");
     
     
    echo ("<pre>");
    print_r($_COOKIES);
    echo ("</pre>");
    ça sert toujours
    Ensuite tu peux quand tout arrive bien, controler que les NAME de tes balises INPUT de l'autre page passent bien !

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 11
    Points : 5
    Points
    5
    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
    Array
    (
        [modif] => 1
        [ref_date] => 2009-02-01
        [ref_service] => 1
        [id_1] => 1
        [rtt_1] => 0
        [cp_1] => 0
        [nonprevisible_1] => 0
        [autres_1] => 0
        [ut_service_1] => 1
        [user_statut_1] => 1
        [id_10] => 10
        [rtt_10] => 0
        [cp_10] => 0
        [nonprevisible_10] => 0
        [autres_10] => 0
        [ut_service_10] => 1
        [user_statut_10] => 2
    )
    Voila je récupère bien un tableau avec des champs identifiés pour chaque ligne de mon formulaire soumis.
    Comment faire pour dépuiller le tableau et insérer chaque ligne dans la BDD ?
    ex : les données user_statut_10 et user_statut_1 vont dans le même champ user_statut
    merci

  11. #11
    FoxLeRenard
    Invité(e)
    Par défaut
    Attends je ne connais pas ta base de donnée qui t'a remplie tes POST, et encore moins celle ou tu va écrire ??

    Ce que je constates c'est une récurence
    DETAILS GENERAUX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [modif] => 1
    [ref_date] => 2009-02-01
    [ref_service] => 1
    PUIS des datas choisis par tes critéres

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [id_1] => 1
    [rtt_1] => 0
    [cp_1] => 0
    [nonprevisible_1] => 0
    [autres_1] => 0
    [ut_service_1] => 1
    [user_statut_1] => 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [id_10] => 10
    [rtt_10] => 0
    [cp_10] => 0
    [nonprevisible_10] => 0
    [autres_10] => 0
    [ut_service_10] => 1
    [user_statut_10] => 2
    Alors ou ça va ? comment veux-tu que je te dises

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    Citation Envoyé par FoxLeRenard Voir le message
    Attends je ne connais pas ta base de donnée qui t'a remplie tes POST, et encore moins celle ou tu va écrire ??

    C'est un formulaire de maj donc les data affichées sont issues de la table qui sera mise à jour.
    Ce que je constate c'est une récurence

    DETAILS GENERAUX : c'est cela, ces deux informations sont mes critères de recherche qui me permettent de filtrer les données à charger dans le formulaire initial

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    [modif] => 1
    [ref_date] => 2009-02-01
    [ref_service] => 1
    PUIS des datas choisis par tes critéres :
    oui c'est cela et ce sont ces données qui seront mises à jour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [id_1] => 1
    [rtt_1] => 0
    [cp_1] => 0
    [nonprevisible_1] => 0
    [autres_1] => 0
    [ut_service_1] => 1
    [user_statut_1] => 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [id_10] => 10
    [rtt_10] => 0
    [cp_10] => 0
    [nonprevisible_10] => 0
    [autres_10] => 0
    [ut_service_10] => 1
    [user_statut_10] => 2
    Alors ou ça va ? comment veux-tu que je te dises
    En piece jointe tu trouveras l'aspect de mon formulaire
    Nom : screen_php.gif
Affichages : 52
Taille : 11,4 Ko

    merci pour ta patience

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 11
    Points : 5
    Points
    5
    Par défaut
    ok j'ai trouvé .

    Dans le formulaire, mes champs de formulaire de la boucle portent le même nom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <td><input type='text' name='user_".$i."[]' value='".$v['ut_rtt']."' size='2'></td>
    <td><input type='text' name='user_".$i."[]' value='".$v['ut_cp']."' size='2'></td>
    <td><input type='text' name='user_".$i."[]' value='".$v['ut_nonprevisible']."' size='2'></td>
    <td><input type='text' name='user_".$i."[]' value='".$v['ut_autres']."' size='2'></td>
    ... ce qui fait que mon POST devient un tableau à deux dimensions

    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
     
    Array
    (
        [modif] => 1
        [ref_date] => 2009-02-01
        [ref_service] => 7
        [user_0] => Array
            (
                [0] => 24
                [1] => 2009-02-01
                [2] => 0
                [3] => 0
                [4] => 0
                [5] => 0
                [6] => 7
                [7] => 1
            )
     
        [user_1] => Array
            (
                [0] => 6
                [1] => 2009-02-01
                [2] => 0
                [3] => 0
                [4] => 0
                [5] => 0
                [6] => 7
                [7] => 1
            )
     
    )
    Je fais ensuite 2 boucles foreach imbriquées pour récupérer les valeurs et les concaténer dans une requête.

    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
     
           foreach( $_POST as $key => $value )
     
                    {
                    //on exclue les lignes d'identification
                    if ($key!="modif" && $key!="ref_date" && $key!="ref_service"){
     
                     $requete="INSERT INTO user_temps VALUES ('',";
                        foreach($value as $ind=>$valeur)
                        {
                         if($ind==0){$requete=$requete."'".$valeur."',";
                         //Je nettoie les anciennes lignes
                         mysql_query("DELETE from user_temps WHERE ut_ref_date='$ref_date' AND ut_ref_user=$valeur");
                        }
                         elseif($ind==5){$requete=$requete."'".$valeur."','','',";}
                         elseif($ind==7){$requete=$requete."'".$valeur."')";}
     
                         else{$requete=$requete."'".$valeur."',";}
                        }
     
                      mysql_query($requete);
     
                    } }
    Qu'en pensez vous ?

  14. #14
    FoxLeRenard
    Invité(e)
    Par défaut
    Whaou a mon avis ça va le faire

  15. #15
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 11
    Points : 5
    Points
    5
    Par défaut [RESOLU]Plusieurs formulaires soumission unique
    Merci pour la patience et les conseils ...

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

Discussions similaires

  1. [PHP 4] Créer un fichier PHP unique pour traiter plusieurs formulaires
    Par goofyto8 dans le forum Langage
    Réponses: 2
    Dernier message: 10/08/2014, 15h18
  2. Variable unique pour plusieurs formulaires
    Par TabbHonmin dans le forum Langage
    Réponses: 12
    Dernier message: 18/01/2014, 14h16
  3. [AJAX] Soumission de plusieurs formulaires
    Par soohikei dans le forum jQuery
    Réponses: 1
    Dernier message: 03/10/2013, 19h27
  4. [optimisation] Plusieurs formulaires vs 1 seul ?
    Par Mos dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 02/11/2004, 15h10
  5. [C#] Utiliser plusieurs formulaires serveur
    Par Anomaly dans le forum ASP.NET
    Réponses: 4
    Dernier message: 24/10/2003, 20h38

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