..euh RESOLU en fait [PHP] (AJAX) - Pb Caractères spéciaux (apostrophe) - PHP - Programmation
Marsh Posté le 13-12-2007 à 15:13:12
avec addslashes c'est bon
$liste += "<option value=\"".$myrow['id']."\">".htmlentities(addslashes($myrow['name']))."</option>"; |
Marsh Posté le 13-12-2007 à 15:16:39
Non, c'est pas bon. addslashes, ça sert à rien, t'aura des anti-slashs qui vont s'afficher.
Et d'où sort le $liste += ? . Pourquoi un +
Marsh Posté le 13-12-2007 à 15:24:49
t'énerves pas
c'est de l'ajax qui génère ma liste comme je l'ai dit
aucun intérêt de balancer ici l'intégralité de mon code...
m'enfin si tu y tiens
<?php |
htmlentities me permet de conserver les caractères spéciaux genre ïéàû
et avec addslashes je résoud mon pb d'apostrophes...
Marsh Posté le 13-12-2007 à 15:46:03
Allège déjà un peu ton code.
Au lieu d'écrire
Code :
|
Ecrit :
Code :
|
Le $liste += ne devrait pas fonctionner, c'est .= pour concaténer
Marsh Posté le 13-12-2007 à 15:46:25
Sinon effectivement, il manquait le fait de savoir que ça allait dans un innerHTML
Marsh Posté le 13-12-2007 à 15:54:43
ok pour le concat, c'est vrai, et c'est logique, mais pourtant += fonctionne...
et malheureusement, si j'omet les antislashes autour des name, id ou autre... bin rien ne fonctionne...
j'aurais une config spéciale ? (apache 2.2, php5, mysql5)
Marsh Posté le 13-12-2007 à 16:16:53
ouf a écrit : ok pour le concat, c'est vrai, et c'est logique, mais pourtant += fonctionne... |
non c'est cette ligne qui fout la merde:
Code : |
si tu ne backslashes pas tes quotes, tu te retrouves avec une instruction javascript incorrecte, genre:
Code :
|
qui plante logiquement.
Accèssoirement, vu la gueule du code, j'emets un violent doute sur le fait que ça soit de l'ajax.
Marsh Posté le 13-12-2007 à 16:31:40
et pourtant...
le javascript appelant l'ajax :
function makeliste() { |
faut bien que j'fasse un echo ou un print de l'instruction js qui change l'innerhtml, non ?
addslashes me sauve
donc voilà, quoi => RESOLU
Marsh Posté le 13-12-2007 à 15:08:59
hello all
petit souci ...
je génère une liste de valeurs via ajax
certaines de ces valeurs contiennent un apostrophe
$liste += "<option value=\"".$myrow['id']."\">".htmlentities(str_replace('\'',' ',$myrow['name']))."</option>";
ça ça marche, mais moi je ne veux pas un espace, je veux mon apostrophe...
avec ’ ou ' ça ne fonctionne pas
une petite idée ?
Message édité par ouf le 13-12-2007 à 15:15:26