PB de traduction de données

PB de traduction de données - PHP - Programmation

Marsh Posté le 29-09-2008 à 11:51:40    

Bonjour tout le monde,
 
Je suis en train de créer un site web pour mon entreprise et j'ai un léger problème.
 
J'utilise un pausescroller (Exemple ici (demo 1)) pour afficher les dernières offres d'emploi sur la page d'accueil.  
 
Problème:
 
Je récupère mes offres dans ma base de données, jusque là tout roule mais arriver au champ description de l'offre, il y a un problème.
 
Si lors de la saisie de son offre, l'administrateur du site a rempli la description du poste de cette manière:
 
"Exemple de  
description"
 
(Il a donc passer une ligne)
 
je vais avoir dans ma base dans le champ description une donnée sous cette forme:  
"Exemple de<br />
description"
 
Hors le pausescroller lit bien les balise html mais il bloque s'il y a un passage de ligne dans la donnée, pour faire clair il faudrait que ma donnée soit écrite de cette manière: "Exemple de<br />description".
 
Mais comment faire??
 
Merci pour vos réponse en espérant que j'ai été clair dans mes explications.


Message édité par Metabolicman le 29-09-2008 à 11:52:07
Reply

Marsh Posté le 29-09-2008 à 11:51:40   

Reply

Marsh Posté le 29-09-2008 à 12:20:31    

Bonjour,
La fonction nl2br semble toute indiquée pour ce problème.
 
Bonne journée :)

Reply

Marsh Posté le 29-09-2008 à 13:30:46    

oui je l'utilise pour ajouter la donnée à la base mais cela me l'affiche  
sous cette forme:
"Exemple de<br />
description"  
et non : "Exemple de<br />description"

Reply

Marsh Posté le 29-09-2008 à 13:57:31    

Ah oui tiens.
J'avais toujours cru que nl2br remplacait au lieu d'insérer.
 
Je crois que je commence à saisir la nature du probleme.
J'imagine en fait que tu génères un tableau en javascript à partir de php, et que les \n "cassent" le code javascript.
Ce qui rend les choses compliquées, c'est que les retours à la ligne varient selon les systèmes, donc un simple str_replace("\n", '<br />', $foo) ne suffirait pas.
Dans les commentaires sur la page de la documentation pour nl2br, ils proposent ca:

Code :
  1. $newlines = array("\r\n", "\n\r", "\n", "\r" );
  2. $description = str_replace($newlines, '<br />', $description);


Ca doit fonctionner, mais je ne pense pas que ce soit la meilleure solution.
Pour moi, il faut revoir le script pausescroller, pour le rendre "non-obstrusif".
En effet, puisque les messages sont stockés dans un tableau javascript, ils ne sont pas affichés pour des utilisateurs ayant desactivé javascript.
Si je devais faire un truc de ce genre, j'afficherais tous les messages dans une liste (<ul> ), et un script lancé au chargement de la page construirait un tableau a a partir des éléments de cette liste, et la remplacerait par un objet "pausescroller".
 
Avec une librairie javascript (personellement, j'utilise mootools), ca ne doit pas etre trop compliqué.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed