Problème retour à la ligne php -> javascript

Résolu
zirkan
Messages postés
8
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
30 septembre 2007
- 8 mai 2007 à 01:54
zirkan
Messages postés
8
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
30 septembre 2007
- 8 mai 2007 à 04:17
Bonjour à tous
J'ai une variable php contenant:
blablabla
blabla
(enfin avec un retour à la ligne ).

Le problème c'est que j'ai besoin de la passer en paramètre d'une fonction javascript mais que avec le retour à la ligne ca rate, car le résultat donne quelque chose comme cela:
function mafonction("blablabla
blabla")

En utilisant nl2br ca change rien :
function mafonction("blablabla

blabla")

Il faudrait probablement utiliser preg_replace pour coller les deux morceaux ensemble et rajouter un
, mais je vois pas comment y arriver..

merci de votre aide

7 réponses

J_G
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
8 mai 2007 à 04:03
;) J'ai bien compris que l'erreur n'était pas là...

Mais elle est ici :
alert(<?php echo var_export(nl2br($photo["commentaire"])); ?>)

Pourquoi tu n'as pas essayé ce que j'ai dis ? Pourqui tu utilises var_export sans même savoir comme ça marche, ce que ça fait ? Y a une doc pourtant !

Bon, mais c'est pas grave, voici la soluce... :

header ( 'Content-Type: text/plain' );

$var = "un text\r\nà la con";
$var = str_replace("\r",'',$var); // pas de retour chariot
$var = str_replace("\n",'\n',$var); // on transforme le caractère retour de ligne en \n
$var = str_replace("'","\'",$var); // puis faut pas oublier les apostrophes
echo "alert('$var')";

A+
1
J_G
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
8 mai 2007 à 02:42
Salut, il faut remplacer par \n coté JS... Donc :
function mafonction("blablabla\nblabla");

Voili
0
zirkan
Messages postés
8
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
30 septembre 2007

8 mai 2007 à 02:58
Heu, je veux bien moi, mais pour remplacer par \n côté js il faut déja qu'une variable js puisse récupèrer le contenu de la variable php hors tout mon problème est là
0
J_G
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
9
8 mai 2007 à 03:06
Oh ben nooon... C'est trop simple, regarde :

<script>
function mafonction(<?php var_export(str_replace( "\n",'\n',$var_php);?>);
</script>

Tu vois. J'utilise var_export pour changer un peu... Mais echo est bien aussi.
A+
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
zirkan
Messages postés
8
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
30 septembre 2007

8 mai 2007 à 03:43
Je ne connaisais pas var_export c'était une bonne idée mais non vraiment ca va pas..

Voici le code exact, tout d'abord la base de donnée avec la variable php ou se trouve le retour à la ligne:

CREATE TABLE `photomembre` (
  `id` bigint(20) NOT NULL auto_increment,
  `membre` bigint(20) NOT NULL,
  `commentaire` varchar(255) NOT NULL,
  `ext` varchar(4) NOT NULL,
  `confirmer` varchar(4) NOT NULL,
  KEY `id` (`id`,`membre`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1434 ;

--
-- Contenu de la table `photomembre`
--

INSERT INTO `photomembre` (`id`, `membre`, `commentaire`, `ext`, `confirmer`) VALUES
(258, 18, 'voici ma 2e photo\r\nje trouve que c &#039;est une des plus r&eacute;ussie', '.jpg', 'true');

Puis une petite page de test (pour faire plus simple) :

<?php
   
mysql_connect('relax','root','');
mysql_select_db('photomembre');
   
$photo = mysql_fetch_array(mysql_query("SELECT commentaire FROM photomembre WHERE id='258' AND membre='18'"));
   
?>

<html>
<form method="post">

<textarea name="msg" rows="7" cols="70"><?php 

echo var_export(str_replace("\n",'\n',$photo["commentaire"]));

?></textarea>

</form>

<script language = "Javascript">
alert(<?php echo var_export(nl2br($photo["commentaire"])); ?>)
</script>
</html>

Voila c'est plus clair maintenant je pense..
0
zirkan
Messages postés
8
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
30 septembre 2007

8 mai 2007 à 03:50
Edit: mysql_connect('relax','root',''); => mysql_connect('localhost','root','');  (je rassure l'erreur était pas là lol)
0
zirkan
Messages postés
8
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
30 septembre 2007

8 mai 2007 à 04:17
hum ca marche, je dois être ravagé j'ai vraiment été noob sur ce coup
En tout cas merci beaucoup J_Gtu es vraiment sympa
0