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

zirkan 8 Messages postés dimanche 27 juin 2004Date d'inscription 30 septembre 2007 Dernière intervention - 8 mai 2007 à 01:54 - Dernière réponse : zirkan 8 Messages postés dimanche 27 juin 2004Date d'inscription 30 septembre 2007 Dernière intervention
- 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
Afficher la suite 

7 réponses

Répondre au sujet
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 8 mai 2007 à 04:03
+1
Utile
;) 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+
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de J_G
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 8 mai 2007 à 02:42
0
Utile
Salut, il faut remplacer par \n coté JS... Donc :
function mafonction("blablabla\nblabla");

Voili
Commenter la réponse de J_G
zirkan 8 Messages postés dimanche 27 juin 2004Date d'inscription 30 septembre 2007 Dernière intervention - 8 mai 2007 à 02:58
0
Utile
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à
Commenter la réponse de zirkan
J_G 1406 Messages postés mercredi 17 août 2005Date d'inscription 28 août 2007 Dernière intervention - 8 mai 2007 à 03:06
0
Utile
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+
Commenter la réponse de J_G
zirkan 8 Messages postés dimanche 27 juin 2004Date d'inscription 30 septembre 2007 Dernière intervention - 8 mai 2007 à 03:43
0
Utile
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..
Commenter la réponse de zirkan
zirkan 8 Messages postés dimanche 27 juin 2004Date d'inscription 30 septembre 2007 Dernière intervention - 8 mai 2007 à 03:50
0
Utile
Edit: mysql_connect('relax','root',''); => mysql_connect('localhost','root','');  (je rassure l'erreur était pas là lol)
Commenter la réponse de zirkan
zirkan 8 Messages postés dimanche 27 juin 2004Date d'inscription 30 septembre 2007 Dernière intervention - 8 mai 2007 à 04:17
0
Utile
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
Commenter la réponse de zirkan

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.