11488 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
j'ai un souci de retour à la ligne sur un textarea que je pré-remplis avec du Jquery.

Configuration...
Une page affichage.php
Une page traitement.php
JavaScript via Jquery 1.3.5
Firefox +Firebug

Affichage.php
Cette page affiche les données de ma base, et contient le formulaire de saisies/modifications.

Traitement.php
Cette page récupère les données souhaitées dans ma base via des requêtes SQL. Elle est exclusivement appelé par la fonction $.post de Jquery.

Action
Je souhaite pré-remplir mon formulaire lors d'un clique sur l'une des entrées de ma base de données. Donc lorsque je clique sur une entrée sur ma page affichage.php, mon formulaire saisies/modifications apparait via une fonction Jquery, et j'appelle la page traitement.php via la fonction $.post() de Jquery.
De là, une requête SQL récupère tous les champs de l'entrée et je renvoi par un echo les commandes java permettant le remplissage du formulaire. Une fois revenues dans la page affichage, la fonction eval() de Jquery traduit l'ensemble du echo renvoyé par la page traitement en JavaScript. Ce qui a pour effet de remplir les différents input du formulaire.

Problème
Le problème se produit pour les textarea de mon formulaire. Dès que le contenu renvoyé contient un retour à la ligne, j'ai un <br /> à la place. Du coup je fais une fonction de remplacement de <br /> par un \n. Et là, ça bloque, FireBug me renvoi cette erreur
a écrit :
:unterminated string literal
$("#f_probleme").val("texte première ligne \n


Déduction
Le problème viendrait du caractère \n qui perturberai la traduction du echo en javascript par la fonction eval(). Mais je ne sais pas comment faire pour qu'il prenne bien en compte mon retour à la ligne.

CODES
affichage.php - Appel de la page traitement pour la récupération des données qui serviront aux remplissages
//Envoi d'une requête par POST avec en paramètre l'action presaisi
			$.post("traitement.php",
				{action:'presaisi', id:$(this).attr('id')},
					function(data){
						//Traduction du texte de retour en javascript
 						eval(data);
					});


traitement.php - le echo qui est renvoyé à la page affichage.php qui sont les commandes de remplissage.
$f_titre=mysql_result($exe_req,0,'titre');
			$f_probleme=mysql_result($exe_req,0,'probleme');
			$f_resolution=mysql_result($exe_req,0,'resolution');
			$f_feedback=mysql_result($exe_req,0,'feedback');
			
			
			echo '
				$("#f_titre").val("'.$f_titre.'");
				$("#f_probleme").val("'.$f_probleme.'");
				$("#f_feedback").val("'.$f_feedback.'");
				$("#f_resolution").val("'.$f_resolution.'");';


Si quelqu'un pouvait m'aider à comprendre où m'a syntaxe pose problème lors de la transformation du<br \> en \n.
Merci d'avance pour votre aide!
Modifié par WyLLoU (19 Jan 2010 - 16:33)
SpaceFrog a écrit :
a mon avis un souci d'echappement essaye \\n voire \\\n

Oh la HONTE... C'est carrement ça.... J'ai pris soin de bien expliquer mon problème, alors qu'en fait, il manquait un \.

Smiley confused

Merci SpaceFrog, merci beaucoup!!! Smiley prie