Problème de ponctuation dans une variable js

Résolu/Fermé
ratagaz Messages postés 56 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 11 mai 2008 - 19 oct. 2005 à 18:18
nidhou Messages postés 7 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 30 avril 2008 - 30 avril 2008 à 15:04
Bonjour à tous !

Mon problème est le suivant : je récupère des données d'une base mysql en php que j'envoi à une fonction javascript qui ouvre une fenêtre dans laquelle doit s'afficher une image et une légende ( merci wiwmagique ! ). Pour le nom de l'image pas de problème . Par contre lorsqu'il y a de la ponctuation dans la variable contenant la léende comme une apostrophe cela crée une erreur du style : missing ) after argument list . Je ne connais pas beaucoup de javascript et j'ai besoin que le texte reste tel qu'il est dans la base de données . Je voudrai savoir si il existe une astuce pour conserver le texte tel quel sans avoir à utiliser des fonctions php pour traiter le texte de manière à enlever toute la ponctuation (sinon autant l'enlever directement dans la base ).
Merci d'avance !

2 réponses

kilian Messages postés 8731 Date d'inscription vendredi 19 septembre 2003 Statut Modérateur Dernière intervention 20 août 2016 1 527
19 oct. 2005 à 19:05
Pas besoin d'enlever la ponctuation.
Au moment ou tu soumets ta chaine pour construire ton javascript, utilise str_replace() pour echapper les guillemets (sion elles seront inteprétées en javascript.

Exemple, en javascript tu as:
a='je cherche une chaine avec l'apostrophe';

Là tu as une erreur puisqu'il y a une guillemet au milieu.

Eh bien au moment de l'insertion tu peux faire comme ceci:
echo "a='" . str_replace("'","\'",$a) . "';"
0
nidhou Messages postés 7 Date d'inscription mardi 29 avril 2008 Statut Membre Dernière intervention 30 avril 2008
30 avril 2008 à 15:04
Moi j'ai le meme probleme mais c'est en html:

Bonjour,

Je suis nouveau sur ce site et en programmation HTML, Javascript. Et j'ai besoin de votre aide si vous le permettez. Merci bcp d'avance.

J'ai une fonction javascript qui me permet d'ecrire un texte. Ce texte est récupéré de la BD.

function ouvrir(texte,code)
{
var haut = 1000; // hauteur de la fenêtre (en pixels)
var larg = 1000; // largeur de la fenêtre (en pixels)
image =new Image(800,800)

var options = "toolbar=no,location=no,directories=no,status=no,"
+ "menubar=no,scrollbars=yes,resizable=yes,copyhistory=yes,"
+ "width=" + larg + ",height=" + haut;

var monimage=document.createElement('img');
monimage.src="../images/sigeom/I1107/"+code+".jpg";

maFenetre=window.open("","",options);
maFenetre.document.open();
maFenetre.document.write(texte);
maFenetre.document.close();
}

l'appel de la fonction :

<TD VALIGN="top" WIDTH="800" ALIGN="left">
<A href="javascript:ouvrir('<%INC I1107_DESC_ENTT%>','<%INC I1107_CODE_ENTT%>')"><IMG alt="Obtenir de l'aide sur le produit" src="../images/sigeom/I1000_aidePoint.gif" align=left border=0 width="26" height="20"></A>

</TD>

il m'affiche une erreur.

La solution c'est d'insérer ton bout de code (echo "a='" . str_replace("'","\'",$a) . "';") dans la fonction ouvrir..

Comment puis-je l'insérer
0
ratagaz Messages postés 56 Date d'inscription mercredi 5 mai 2004 Statut Membre Dernière intervention 11 mai 2008 15
19 oct. 2005 à 19:33
Ca marche bien ! Merci Kilian ! J'avais pensé à utiliser le str_replace mais je ne savais pas par quoi remplacer l'apostrophe . Merci beaucoup !
0