envoyer une variable php dans du javascript

Monnier
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 21:27

Bon alors la, apres plusieur heure de recherche je seche!
Voici la premiere partie du code ou j'essaye d'attribué ma variable php "nom" a ma variable "test" javascript

Code : Tout sélectionner

var test='<?php echo $nom; ?>';
Ensuite je dis d'afficher ma variable test

Code : Tout sélectionner

writeRichText('rte1', +test, 400, 200, true, false);
Et j'obtiens une erreur dans la page, je vois pas quoi faire j'ai essayer de jouer sur des parenthese mais rien a faire :'(
Merci pour l'aide :roll:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 mai 2006, 21:52

Salut,

Le "+" n'as rien à faire là.
writeRichText('rte1', +test, 400, 200, true, false);

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Monnier
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 21:56

Ben j'avais fais un test en mettant var test="10" et sa marche tres bien mais des que j'essaye de mettre ma variable php sa marche pas :'(

Invité
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 22:00

je l'ai enlever mais c'est toujours pareil, que faire? :?

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 mai 2006, 22:06

il y a peut être un souci dans l'ordre de construction et d'appel.

Si tu fait appel à la variable "test" avant qu'elle ne soit affectée par la variable php tu auras une erreur. :-k

montre un peu plus de code pour plus de détails.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Monnier
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 22:11

Ok alors voici l'ordre de mon code.

Code : Tout sélectionner

<? $fichier = 'peinture.txt'; // on déclare le nom du fichier à ouvrir $taille = filesize($fichier); //donne la taille du fichier $fp = fopen($fichier,'r'); //ouverture du fichier en lecture seule $var=""; while(!feof($fp)) //feof indiquera la fin du fichier, donc dans cette boucle, le fichier est parcouru jusqu 'à la fin { $ligne = fgets($fp,$taille); //lecture du fichier et stockage dans la variable ligne $var=$var.' '.$ligne; //print $ligne.'<br>'; //affiche la ligne à l'écran, n'oubliez pas le <br> qui est le retour à la ligne html } echo $var; fclose($fp); //pensez à refermer à la fin du script ?> <script language="JavaScript" type="text/javascript"> var test='<? echo $var; ?>'; <!-- //Usage: writeRichText(fieldname, html, width, height, buttons, readOnly) writeRichText('rte1', test, 400, 200, true, false); //--> </script>
[/quote]

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

17 mai 2006, 22:26

Utilise plutôt les balises
 car plus lisible.

$var est bien affectée ?
le echo affiche son contenu?

Sinon effectue un test avec alert()

[php]<script language="JavaScript" type="text/javascript">
<!--
var test='<?  echo $var; ?>';
alert(test);
//Usage: writeRichText(fieldname, html, width, height, buttons, readOnly)
writeRichText('rte1', test, 400, 200, true, false);
//-->
</script>
regarde le code source généré, ou tu as peut être une autre erreur JS qui bloque la suite.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Monnier
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 22:36

mince j'ai trouver l'erreur mais je sais pas comment resoudre !!
Voila en faite mon fichier contient des balises html et sa doit crée des conflit avec toute les balises....
Il y a pas une solution pour lui dire de lire les balises?

Invité
Invité n'ayant pas de compte PHPfrance

17 mai 2006, 22:57

Apres reflexion, le bug arrive des que le fichier texte a plus d'une ligne...
Comment faire? :?

Invité
Invité n'ayant pas de compte PHPfrance

18 mai 2006, 10:06

En effet lorsqu'il y a un saut de ligne dans le fichier il y aura aussi un saut le ligne lors de l'affichage et coupe donc le code javascript qui doit être "protégé" par exemple:
function js_php($txt)
{	
	$txt=str_replace('"','"',$txt); //remplacement des guillemets
	$txt=nl2br($txt);
	$txt=str_replace("\r","",$txt);
	$txt=str_replace("\n","",$txt);	
	$txt=addslashes($txt);	
	return $txt;
} 
la je pense que tu peux y aller sans craintes 8)

et dans le JS:
var test='<?php  echo js_php($var); ?>';

Monnier
Invité n'ayant pas de compte PHPfrance

19 mai 2006, 19:49

ouep j'ai reussi merci bien^^

djedie
Invité n'ayant pas de compte PHPfrance

15 juin 2006, 17:07

a quoi sert cette ligne : $txt=str_replace('"','"',$txt); ?

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

15 juin 2006, 17:26

Remplacer les guillemets par des guillemets, c'est pas mal en effet :)

En revanche, ce sont les apostrophes du texte qu'il faudrait protéger pour qu'il n'y ait pas d'erreur vu que ta chaine javascript sera entre apostrophes.

Par ailleurs
$txt=str_replace("\r","",$txt); 
$txt=str_replace("\n","",$txt);  
ne sert à rien après le nl2br(), les retours à la lignes auront déjà été remplacés par des "<br />" :)

djedie
Invité n'ayant pas de compte PHPfrance

15 juin 2006, 17:37

et bien si je les vire, ca ne fonctionne plus chez moi, donc je conseil de les laisser.

Par contre on peut virer le
 $txt=str_replace('"','"',$txt);
...