Voila, je veux faire un systeme qui charge depuis une BDD des infos qui definissent des "gabarit" pour remplir des input.
Aucun probleme avec tout ce qui est php et sql. Mais ma fonction JS qui écrit les value des input fonctionne trés bien jusqu'à ce que les infos a ecrire contiennent des apostrophes ou des guillemets (comme par hasard...).
Voila la fonction qui écrit dans les champs :
Tout ça marche trés bien. Mais quand le 'nom' ou la 'note' contient un ou des apostrophe, ça me met \' ou \" dans le input. Comme j'utilise le contenu du input pour mettre la BDD a jour, j'enregistre le \ puis le ' et ça ne va pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 function setGabarit (nom,note){ document.getElementById('nom').value = decoderJS(nom); document.getElementById('note').value = decoderJS(note); }
A savoir, ça marche niquel avec easyPhP mais pluss du tout quand je le met en ligne... Je croyais que le JS s'executait sur le client...
Et voici donc maintenant ma function decoderJS() :
La functione UTF8 a été developpée par Rubik's Man et fonctionne parfaitement. Dans le code source généré, les apostrophes sont ecrites %27, ce qui est normal (d'où le decodeURIComponent(chaine)) mais ça montre bien que le \ est rajouté par le JS, au moment ou j'écris dans le input.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 function decoderJS (chaine) { chaine = decodeURIComponent(chaine); chaine = UTF8_tool.decode(chaine); var aRemplacer = /\+/g; chaine = chaine.replace(aRemplacer, " "); return chaine; }
Comment faire pour éviter ça ?
Partager