Problème retour à la ligne php -> javascript [Résolu]

Signaler
Messages postés
8
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
30 septembre 2007
-
zirkan
Messages postés
8
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
30 septembre 2007
-
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

Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
6
;) 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+
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
6
Salut, il faut remplacer par \n coté JS... Donc :
function mafonction("blablabla\nblabla");

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

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à
Messages postés
1406
Date d'inscription
mercredi 17 août 2005
Statut
Membre
Dernière intervention
28 août 2007
6
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+
Messages postés
8
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
30 septembre 2007

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..
Messages postés
8
Date d'inscription
dimanche 27 juin 2004
Statut
Membre
Dernière intervention
30 septembre 2007

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

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