Problème passage de paramètre PHP pour une fonction js

Eléphanteau du PHP | 11 Messages

09 févr. 2009, 20:39

Bonjour,


J'ai un petit souçi :
J'ai une fonction javascript dans laquelle je passe en unique parmètre une chaine de caractères qui est en fait le retour d'une fonction PHP (recupération de données d'une bas SQL).

Mon problème est lié à l'existence de caractères sépciaux comme quotes et doubles quotes.
Pour contourner le problème je suis forcé de faire celà :
$texte = addslashes($texte); 
    $texte = htmlentities($texte,ENT_QUOTES); 


avant de passer ma variable dans mon code javacript.
N'y aurait-il pas une solution plus "élégante" ?

Merci


PS : J'ai déja posé la même question sur la partie JS du forum, mais sans succès, il semble que ce soit tout de même plus une problématique PHP, c'est pour ça que je me permets de reposter ici.

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

10 févr. 2009, 17:38

Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Eléphanteau du PHP | 11 Messages

23 févr. 2009, 02:59

Merci pour la réponse mais celà ne semble pas convenir. En effet lorsque j'utilise urlencode () le retour de ma fonction js me renvoie tous les mots concaténés par un "+".

pour info voici la fonction js vers laquelle sont envoyées les chaines :

Code : Tout sélectionner

function contenu_mod(monTitrefull,monTexte) { document.getElementById('nom_full').innerHTML = monTitrefull; document.getElementById('contenu2').innerHTML = monTexte; }

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

23 févr. 2009, 09:12

Quelque soit la variable PHP, tu peux obtenir son équivalent JS avec json_encode() (pour les objets ça rend un Hash).
<?php

  $str = 'Hello World';

?>

<script type="text/javascript">
  alert(<?php echo json_encode($str) ?>);
</script>