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

JavaScript Discussion :

Tableau éditable avec ajout à la base de données


Sujet :

JavaScript

  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut Tableau éditable avec ajout à la base de données
    Bonjour,

    J'ai une problématique qui est la suivante: je veux avoir un tableau des champ et lorsqu'on s'appuie sur un bouton en ajoute une ligne autre ligne vide semblable à la ligne précédente et puis avoir un bouton submit qui fait l'insertion des tous les données saisies dans la base de données. C'est pour mon application web dynamique svp aidez moi

    Voici le code du mon tableau
    Code html : 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
    <table class="dTable" id="matable"> 
     <thead> <tr> <th> <div align="center"> Code Article </div> </th> 
                  <th> <div align="center"> Article </div> </th> 
    			  <th> <div align="center"> D&eacutesignation </div> </th> 
    			  <th> <div align="center"> Num&eacutero de S&eacuterie </div> </th> 
    			  <th> <div align="center"> Version </div> </th>
                  <th> <div align="center"> Famille </div> </th> 
                  <th> <div align="center"> Emplacement </div> </th> 
     
     </tr> </thead> 
    <tfoot>  </tfoot> 
    <tbody> <tr> <td> <div align="center"> <input type="text" name="Code_Article"/> </div> </td> 
                 <td> <div align="center"> <input type="text" name="Article"/> </div> </td> 
                 <td> <div align="center"> <input type="text" name="Designation"/> </div> </td> 
    			 <td> <div align="center"> <input type="text" name="Numero_Serie"/> </div> </td> 
    			 <td> <div align="center"> <input type="text" name="Version"/> </div> </td> 
    			 <td> <div align="center"> <select name="Famille"><option></option>
    			 <option></option>
    			 <OPTION></OPTION>  </select> </div> </td>
    			 <td> <div align="center"> <input type="text" name="Emplacement"/> </div> </td> 
     
    </tr> </tbody> </table>
    et voici le code pour ajout des champs à ma base des données
    Code php : 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 
    session_start(); 
     
    // On intègre les informations de connexion à la base de données ainsi que le fichier 
     
    include("conf_site.php");
    include("fonctions.php");
    // On intialise la connexion à la base de données
    $bdd = new PDO('mysql:host='.$bdd_hote.';dbname='.$bdd_nmDB, $bdd_user, $bdd_pass);
    $Numero_Bon_Entree=$_SESSION['Bon_Entree_N'];
    $Numero_Serie=htmlentities(trim($_POST['Numero_Serie']));
    $Code_Article=htmlentities (trim($_POST['Code_Article']));
    $Carte=htmlentities(trim($_POST['Article']));
    $Famille=htmlentities(trim($_POST['Famille']));
    $Emplacement=htmlentities(trim($_POST['Emplacement']));
    $Version=htmlentities(trim($_POST['Version']));
    $Designation=htmlentities(trim($_POST['designation']));
    if($Code_Article&&$Numero_Serie){
    $requete="INSERT INTO `articles` (`Numero_Serie`, `Code_Article`,`Carte`,`Famille`,`Emplacement`, `Version`, `Designation`,`Numero_Bon_Entree`) VALUES ('$Numero_Serie','$Code_Article', '$Carte','$Famille','$Emplacement','$Version','$Designation','$Numero_Bon_Entree' );";
    sql($requete);
     session_start();
    $_SESSION['ok2']="ok";
    header('location:bon_d\'entree2.php');
    }
    else { header ('location:bon_d\'entree2_erreur.php'); }
    ?>


    Merci de votre aide.

  2. #2
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Utilise la possibilité du html d'utiliser les tableaux dans les names de tes input pour rassembler les éléments qui correspondent au même article.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <input type="text" name="article[0][Code_Article]"/> 
    <input type="text" name="article[0][Article]"/>
    <input type="text" name="article[][Designation]"/>
    // etc...

    Tu peux créer de nouveaux articles en javascript (ou mieux utilise jquery ce sera plus simple) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        // En ayant créé un bouton avec l'id "ajouterArticle" dans ton html
        var nbArticle = 0;
     
        $('#ajouterArticle').click(function() {
            nbArticle++;
            $('<input type="text" name="article[' + nbArticle + '][Code_Article]"/>' +
                    '<input type="text" name="article[' + nbArticle + '][Article]"/>' +
                    '<input type="text" name="article[' + nbArticle + '][Designation]"/>'
                    // etc...
                    ).prependTo($(this));
        });
    Dans ton php, tu n'as plus qu'à boucler sur la requête qui sauvegarde les données, pour enregistrer chaque article qui aura été envoyé dans ton formulaire.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Merci pour votre aide spartacusply, j'ai fait comme tu as dit mais il y a encore le problème le bouton ne fonctionne pas.
    Svp est ce que vous pouvez vérifier mon code:
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <tbody> <tr> <td> <div align="center"> <input type="text" name="article[0][Code_Article]"/> </div> </td> 
                 <td> <div align="center"> <input type="text" name="article[0][Article]"/> </div> </td> 
                 <td> <div align="center"> <input type="text" name="article[0][Designation]"/> </div> </td> 
    			 <td> <div align="center"> <input type="text" name="article[0][Numero_Serie]"/> </div> </td> 
    			 <td> <div align="center"> <input type="text" name="article[0][Version]"/> </div> </td> 
    			 <td> <div align="center"> <select name="article[0][Famille]"><OPTION></OPTION>  </select> </div> </td>
    			 <td> <div align="center"> <input type="text" name="article[0][Emplacement]"/> </div> </td> 
    			 <td>  <input type="button" id="ajouterArticle" value="add"/> </td >
    </tr> </tbody>

    et j'ai tapé ce code pour la fonction javascript:
    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
    var nbArticle = 0;
     
        $('#ajouterArticle').click(function() {
            nbArticle++;
            $('<input type="text" name="article[' + nbArticle + '][Code_Article]"/>' +
                    '<input type="text" name="article[' + nbArticle + '][Article]"/>' +
                    '<input type="text" name="article[' + nbArticle + '][Designation]"/>'+
                    '<input type="text" name="article[' + nbArticle + '][Numero_Serie]"/>'+
    				' <input type="text" name="article[' + nbArticle + '][Version]"/>' +
    				'<select name="article[' + nbArticle + '][Famille]"><OPTION></OPTION>  </select>'+
    				'<input type="text" name="article[' + nbArticle + '][Emplacement]"/>'
     
     
                    ).prependTo($(this));
        });

    Je m'excuse si mon code contient des erreurs mais c'est parce que je suis débutante dans le javascript
    Merci d'avance

  4. #4
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    As-tu bien importé la librairie jquery ? (http://jquery.com/download/#using-jquery-with-a-cdn)

    Pour information, pour débugguer du javascript, c'est la touche F12 sous chrome, extension firebug sous firefox.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Désolé encore une fois comme je t'ai dit je suis encore débutante en développement web, je n'a pas compris ce qu'il me faut faire

  6. #6
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Je t'ai mis le lien direct pour savoir comment importer la librairie javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script src="//code.jquery.com/jquery-1.11.0.min.js"></script>
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  7. #7
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    J'ai essayé ça mais le problème reste encore, le bouton ne fonctionne pas

  8. #8
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    J'ai oublié les balise englobantes.

    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
    $(function() {
    var nbArticle = 0;
     
        $('#ajouterArticle').click(function() {
            nbArticle++;
            $('<input type="text" name="article[' + nbArticle + '][Code_Article]"/>' +
                    '<input type="text" name="article[' + nbArticle + '][Article]"/>' +
                    '<input type="text" name="article[' + nbArticle + '][Designation]"/>'+
                    '<input type="text" name="article[' + nbArticle + '][Numero_Serie]"/>'+
    				' <input type="text" name="article[' + nbArticle + '][Version]"/>' +
    				'<select name="article[' + nbArticle + '][Famille]"><OPTION></OPTION>  </select>'+
    				'<input type="text" name="article[' + nbArticle + '][Emplacement]"/>'
     
     
                    ).prependTo($(this));
        });
    });
    Sers toi de la console pour voir ce genre d'erreur.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  9. #9
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Dsl, mais le problème reste toujours, ça peut qu'il soit lors de l'appel de la fonction , ou peut être qu'il n'a pas reconnu le bouton malgré c'est pour le même id

  10. #10
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Erreur de ma part, remplace "prependTo" par "insertBefore" (subtilité entre les deux qui change tout).
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  11. #11
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    Merci infiniment, c'était très utile et l'ajout du tableau fonctionne bien, mais svp est-ce qu'il est possible que vous m'aidez pour le code php de l'ajout à la base des données.

  12. #12
    Membre expert
    Avatar de Spartacusply
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Points : 3 275
    Points
    3 275
    Par défaut
    Fais déjà un print_r($_POST);, tu pourras visualiser comment est construit ton tableau $_POST.

    Il te faut boucler sur le tableau et faire une insertion par tour de boucle.
    Un message utile vous a aidé ? N'oubliez pas le

    www.simplifions.fr - Simplifier vos comptes entre amis !

  13. #13
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2014
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2014
    Messages : 13
    Points : 4
    Points
    4
    Par défaut
    j'ai essayé avec ce code mais une erreur s'affiche: Column count doesn't match value count at row 1
    Voici mon code:
    Code php : 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
    <?php 
    session_start(); 
    // On intègre les informations de connexion à la base de données ainsi que le fichier 
    include("conf_site.php");
    include("fonctions.php");
    // On intialise la connexion à la base de données
    $bdd = new PDO('mysql:host='.$bdd_hote.';dbname='.$bdd_nmDB, $bdd_user, $bdd_pass);
    $Numero_Bon_Entree=$_SESSION['Bon_Entree_N'];
    $value=''; 
    $i=0; 
    while(isset($_POST['article'][++$i]['Numero_Serie']))
    { $value.="('', 
    '".mysql_real_escape_string($_POST['article'][$i]['Numero_Serie'])."','".mysql_real_escape_string($_POST['article'][$i]['Code_Article'])."','".mysql_real_escape_string($_POST['article'][$i]['Article'])."','".mysql_real_escape_string($_POST['article'][$i]['Famille'])."','".mysql_real_escape_string($_POST['article'][$i]['Version'])."','".mysql_real_escape_string($_POST['article'][$i]['Emplacement'])."','".mysql_real_escape_string($_POST['article'][$i]['Designation'])."','".$Numero_Bon_Entree."')";}
    $value=substr($value,0,-1); 
    mysql_query("INSERT INTO `article` (`Numero_Serie`, `Code_Article`,`Carte`,`Famille`,`Version`, `Emplacement`, `Designation`,`Numero_Bon_Entree`) VALUES ('".$value."')") or die (mysql_error());
    ?>

Discussions similaires

  1. [PDO] Ajout dans base de données avec requête préparée
    Par Invité dans le forum PHP & Base de données
    Réponses: 0
    Dernier message: 10/07/2014, 19h19
  2. pb avec mysql comme base de données
    Par rpd05 dans le forum Installation
    Réponses: 1
    Dernier message: 27/06/2006, 21h12
  3. Liaison de table avec une autre base de donnée
    Par freya91 dans le forum Access
    Réponses: 1
    Dernier message: 03/06/2006, 00h08
  4. [VBA-E] Requète SQL avec chemin de base de données variable
    Par Svart26 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/05/2006, 13h29
  5. Pbm d'ajout à une base de données
    Par jbaers dans le forum Bases de données
    Réponses: 4
    Dernier message: 29/11/2005, 12h35

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