Bonjour, Je suis entrain de réalisé une application qui gère les travaux scientifiques.
Le formulaire nouveau_travail.ejs permet d'enregistrer les données dans une table direction de la base des données crée en MySQL.
Mais j'ai constate que la donnée qui est enregistrer dans la table sont des objets et non des textes.
Voici les code du serveurs:
Code:
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 const mysql=require('mysql'); const express=require('express'); var app=express(); const bodyparser=require('body-parser'); const path=require('path'); //ajout du middleware body-parser app.use(bodyparser.json()); //set upp public directory to serve static files console.log(__dirname) app.use(express.static('public')); //ouverture de la connexion à la bd var mysqlConnection=mysql.createConnection({ host:'localhost', user:'root', password:'', database:'bdupc' } ); mysqlConnection.connect((err)=>{ if(err) console.log('probleme de conexion:'+err); else console.log('connexion à la BD etablie...'); }); //ouveryure du serveur app.listen(8085,()=>{ console.log('Serveur demarre au port :8085'); }); // settings app.set('views', path.join(__dirname, 'vue')); app.set('view engine', 'ejs'); //routage de l'application //1. APPEL DU FORMULAIRE QUI AFFICHE LES DONNEES app.get("/",(req,resp)=>{ //consultation de la bd //consultation de la bd mysqlConnection.query('select * from direction',(err,rows,fields)=>{ if(err)console.log("Probleme de chargement de la BD"); else{ console.log(rows); resp.render('user_index',{ title:'DIRECTION TRAVAUX SCIENTIQUE', data:rows }); } }); }); //2.APPEL DU FORMULAIRE DE SAISIE TRAVAIL app.get("/nouveau_travail",(req,resp)=>{ resp.render('nouveau_travail',{ title:'NOUVEAU TRAVAUX SCIENTIQUE' }); }); app.post("/save",(req,resp)=>{ //insertion d'une donnée const data={nom_etudiant:req.body,prenom_etudiant:req.body,contact:req.body, sujet:req.body,statut:req.body}; var sql="insert into direction set ? "; mysqlConnection.query(sql,[data],(err,fields)=>{ if(err)console.log("Echec d'enregistrement à BD"); else{ console.log("Enregistrement effectuee"); resp.redirect("/"); } }); });
Pour ce qui du formulaire de saisie:
Code:
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 <html> <head> <title></title> <link href="css/bootstrap.min.css" rel="stylesheet"> </head> <body> <div class="container"><!--fin div container--> <h2><%= title %></h2> <form action="/save" method="post"> <div class="form-group"> <label for="nom_etudiant">Nom Etudiant</label> <input type="text" name='nom_etudiant' class='form-control' size="30" id="nom_etudiant" placeholder="Nom de l'étudiant" > </div> <div class="form-group"> <label for="prenom_etudiant">Prenom Etudiant</label> <input type="text" name='prenom_etudiant' class='form-control' size="30" id="prenom_etudiant" placeholder="Prenom de l'étudiant" required> </div> <div class="form-group"> <label for="contact">Contact</label> <input type="text" name='contact' class='form-control' size="30" id="contact" placeholder="Contact de l'étudiant" required> </div> <div class="form-group"> <label for="sujet">Sujet</label> <textarea name="sujet" class='form-control' id="sujet" cols="50" rows="5"></textarea> </div> <div class="form-group"> <label for="statut">Statut</label> <select name='statut' class='form-control'> <option value="1">Travail encours</option> <option value="0">Travail cloturé</option> </select> </div> <button type='submit' class="btn btn-primary"> Sauvegarder</button> </form> </div><!--fin div container--> </body> </html>
Mais au niveau de la base des données, ce qui est insére se présente comme suit:
Pièce jointe 528019
Pourriez vous me dire à quel niveau se situe le problème.