Contexte: j'utilise node.js avec avec le module EJS pour mon formulaire, le module 'mssql' pour communiquer avec une BDD sql server. Le serveur récupère les données et les affiches dans le formulaire, notamment les commentaires et le niveau de satisfaction.
Problème: Si dans ma condition la STRING contient une apostrophe le serveur ne sais pas la lire et du coup elle ne récupère ni le commentaire, ni le niveau de satisfaction pour l'afficher dans le formulaire.
app.get('/Hardis_formulaire', function(req, res){
var clicos = req.session.client;
var jira = req.session.jira;
var Econtact = req.session.contact;
// Chaine de connection
var config = {
user: 'admin',
password: 'admin',
server: 'sqlsrv',
database: 'MABDD'
};
// connect to your database
sql.connect(config, function (err) {
if (err) console.log(err);
// create Request object
var request = new sql.Request();
// query to the database and get the records
request.query("select * from Formulaire where Client = '"+clicos+"' AND Contact = '"+Econtact+"' AND Jira = '"+jira+"' ", function (err, record2) {
if (err) console.log(err)
sql.close();
res.render('form.ejs', {
client : req.session.client,
jira: req.session.jira,
contact: req.session.contact,
ticket: req.session.ticket,
results2: record2
});
});
});
});
form.ejs
<script type="text/javascript">
var rows2 = <%-JSON.stringify(results2)%>;
var recordset2 = rows2['recordset'];
//console.log(rows2);
//console.log(recordset2);
$(recordset2).each(function(index, value){
var comment2 = value['Commentaire'];
var radio = value['lvlsatisfaction'];
console.log(radio);
document.getElementById("Commentary2").value = comment2;
//console.log(Client);
$('#'+radio).prop("checked", true);
console.log($('#'+radio).prop("checked", true));
});
</script>
j’espère avoir été assez explicite dans ma demande et que vous saurez m'aider,
tout d'abord je voudrais te remercier pour le temps que tu m'as accordé,
Pour lire une STRING avec une apostrophe depuis une bdd Microsoft sql server il faut doubler les apostrophes,
exemples: L'apostrophe deviendra L''apostrophe.
Avec JS j'utilise la méthode replace() comme suite:
var RIP = Jira.replace(/'/g,"''");
Comme mon problème est résolus je clos le post.
N’hésitez pas si vous avez des commentaires
djean114
Lire une chaîne de caractère avec une apostrophe
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.