2010-02-02 7 views
1

Je demande un texte à partir d'un DB. si le texte se termine trop longtemps, je veux pouvoir envelopper le texte après, disons, 400 caractères et afficher un "..." à la fin. comment cela peut-il être fait?envelopper un texte long dans un div

+0

Veuillez nous donner plus de détails sur la façon dont vous interrogez la base de données et comment vous avez l'intention de mettre les résultats dans une page html. –

Répondre

5

Je vous suggère de ne pas le faire dans votre requête. Vous êtes probablement rendu dans une police proportionnelle, ce qui signifie que 400 caractères n'ont jamais la même taille. "..." avec beaucoup d'espace blanc derrière c'est un peu bizarre.

Vous pouvez interroger le champ entier et coupé à l'aide CSS (avec l'aide du navigateur limité) avec:

overflow: hidden; 
text-overflow: ellipsis; 
0

En MySQL, il est:

SELECT (CASE WHEN CHAR_LENGTH(some_column) > 400 THEN CONCAT(SUBSTR(some_column, 1, 400), '...') ELSE some_column END) FROM some_table

Remplissez votre propre colonne à tronquée et une table, mais qui est l'essentiel.

1

Lorsque vous avez le texte dans une chaîne javascript:

newText = text.length > 400 ? (text.slice(0, 400) + ' ...'):text; 
0

Vous pouvez ajouter o-text-overflow à la solution de Tomas pour apporter un soutien à l'Opéra.

0

L'utilisation de javascript et de jquery (substring()) peut convenir à vos besoins.

var mystring = somethingFromYourDb 
var mystringToDisplay = mystring.substring(0,400); 
var div = document.createElement('div'); 
div.innerHTML = mystringToDisplay; 
... 

Pour afficher la fin de la chaîne, vous avez également plusieurs façons de le faire. Ouvrir une nouvelle fenêtre, en utilisant la fonction jquery "toggle()", ...

Questions connexes