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

PHP & Base de données Discussion :

Insertion de données en bdd avec un nombre de champs variables [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut Insertion de données en bdd avec un nombre de champs variables
    Salut à tous,
    je savais pas trop si il fallait poster dans JS ou dans php/Mysql, au cas ou merci de basculer dans le bon forum.
    voila mon souci, je suis une quiche en JS, j'ai donc récupéré un petit script qui permet d'ajouter des champs de formulaire et qui
    fonctionne comme je veux.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
       <form id="myForm" method="post" action="test_envoi.html">
          <fieldset>
             <label for="produit1">Produit</label> : <input id="produit1" name="produit1" type="text" value="" />
             <label for="quantite1">Quantité</label> : <input id="quantite1" name="quantite1" type="text" value=""/>
             <label for="autre1">Autre</label> : <input id="autre1" name="autre1" type="text" value=""/>
             <label for="bob1">Bob</label> : <input id="bob1" name="bob1" type="text" value=""/>		 
          </fieldset>
          <input type="submit" value="Envoyer" />
       </form>
     
       <div id="debug"></div>
    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
       <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
       <script type="text/javascript">
          $(function(){
     
             var nb = 1;
             $('.add').click(function(){
                var ligneTemp = $(myForm).children("fieldset:last");
                ligneTemp.after(ligneTemp.clone(true));
                $(myForm).children("fieldset:last").hide().fadeIn();
                var ligneTemp = $(myForm).children("fieldset:last");
                ligneTemp.find('label').each(function() {
                   tempLabel = $(this).attr("for").replace(nb, nb+1);
                   $(this).attr("for",tempLabel);
                });
                ligneTemp.find('input').each(function() {
                   this.id= this.id.replace(nb, nb+1);
                   this.name= this.name.replace(nb, nb+1);
                   this.value= "";
                });
                nb++;
             });
             $('.del').click(function(){
                if (nb>1) { // Pour qu'il reste au moins une ligne
                   $(myForm).children("fieldset:last").fadeOut(300, function(){$(this).remove();});
                   nb--;
     
                }
             });
     
             $("#myForm").submit(function(){
                var datas_form = $("#myForm").serializeArray();
                $("#debug").empty();
                $.each(datas_form, function(i, field){
                   $("#debug").append(field.name + ":" + field.value + "<br />");
                });
                return false;
             });
          });
    par contre comment faire pour insérer les différent champs en bdd, tous en sachant que le nombre de champs varie.
    à quel niveau dois je mettre ma requête php INSERT INTO ... et comment ?

    Merci d'avance de votre aide

    Cdt

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut


    Il n'y a pas un concept qui te perturbe dans l'idée de vouloir faire des manipulations sur une base de données en JavaScript (donc depuis un navigateur) ?
    En gros, ce que tu voudrais, ce serait mettre en clair dans le code source de ta page les identifiants de connexion à ta base pour pouvoir t'y connecter ?

  3. #3
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    Ça semble davantage être une mauvaise conception du modèle de la base de données lui-même si tu ne vois pas comment gérer de multiples champs. Je déplace en forum MySQL

  4. #4
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    Citation Envoyé par Bovino Voir le message


    Il n'y a pas un concept qui te perturbe dans l'idée de vouloir faire des manipulations sur une base de données en JavaScript (donc depuis un navigateur) ?
    En gros, ce que tu voudrais, ce serait mettre en clair dans le code source de ta page les identifiants de connexion à ta base pour pouvoir t'y connecter ?
    je ne comprends pas trop ta réponse ?
    il s'agit d'un formulaire pour un back-office donc a accès limité de plus pour la connexion bdd elle est appelé avant comme sur n'importe quelle page.
    ce que je voulais savoir c'est comment récupérer les valeur du JS de ce formulaire pour les insérer en BDD

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Quand tu soumets ton formulaire, tous les champs qu'il contient sont envoyés au serveur, peu importe la façon dont ils y ont atterri.

    Quant au fait que ce soit "un formulaire pour un back-office donc a accès limité", ton navigateur n'en a à aucun moment conscience, donc pour lui, c'est une page HTML comme une autre, il ne sait pas faire de différence.
    Ma remarque portait juste sur le fait que JavaScript n'a jamais la possibilité de communiquer avec une base de données. Il peut juste appeler le serveur en lui transmettant des paramètres pour que le langage serveur (PHP ou autre) interroge la base de données.

  6. #6
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    ok je comprends ,
    mais comment je fais pour transmettre ou récupérer les valeurs du formulaire Js
    pour pouvoir les basculer en php pour ensuite les insérer en BDD

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut


    Ben, tu prends la souris, tu la bouges jusqu'à ce que le curseur soit au-dessus du bouton sur lequel est écrit "Envoyer" puis avec ton index, tu appuies sur le bouton qui se trouve en-dessous. Ca devrait être bon.

    Ceci dit, un formulaire js, ça n'existe pas. Tu peux avoir des scripts JavaScript qui ajoutent des champs dans un formulaire HTML, mais c'est tout.

  8. #8
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    bon ok,
    je vais chercher une autre solution

    Merci

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Je pense surtout que tu devrais mieux expliquer la problématique que tu rencontres.

    Tu nous expliques que tu ajoutes dynamiquement des champs dans un formulaire avec JavaScript et que tu aimerais enregistrer ces champs dans la base de données.
    C'est très bien, mais pour récupérer ces champs côté serveur (PHP je suppose), il suffit de soumettre le formulaire puis de traiter les données reçues. Le fait que les champs aient été intégrés au formulaire par HTML, JavaScript voire par magie ne change rien : au moment où tu cliques sur submit, tous les champs présents dans le formulaire à ce moment là sont transmis.

    Bref, où est ton problème ?

  10. #10
    Membre habitué Avatar de spawns
    Homme Profil pro
    Inscrit en
    Juillet 2004
    Messages
    558
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 558
    Points : 193
    Points
    193
    Par défaut
    tu as raison je cherchais un problème ou il n'y en avais pas finalement.
    puisque effectivement je récupère mes champs une fois que le formulaire est envoyé avec $_POST bien sur.

    merci de ton aide

    Cdt

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

Discussions similaires

  1. [MySQL] problème d'insertion de données à une base avec le php
    Par bibaa dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 19/08/2010, 01h11
  2. Réponses: 8
    Dernier message: 25/11/2008, 12h33
  3. Réponses: 12
    Dernier message: 20/12/2007, 17h24
  4. Interface avec un nombre de champs variable
    Par vladvad dans le forum Windows Forms
    Réponses: 2
    Dernier message: 11/06/2007, 11h19
  5. [MySQL] Problème à l'insertion des données en BDD
    Par carelha dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/11/2006, 14h31

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