Version complète: sur le forum Webmaster Hub : La question de boulet du jour.
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > (X)HTML et CSS
DarkArcadius
Et bien donc je m'explique, j'ai d'une part une page où je saisis dans un textarea un texte (limité en nombre de caractères), et d'une autre part, une page en php se servant de la DB qui affiche donc un texte par ligne dans un tableau tout beau!

Mon problème se situe au niveau du fait que lorsque je saisis un texte dans ce textarea, j'aimerai qu'il y ait un retour à la ligne automatique et forcé lorsque le mot atteint le bord droit. Ce problème se pose uniquement lorsque je ne saisis qu'un mot d'une longueur dépassant celle du cadre, si je saisis un texte cela retourne à la ligne tout seul.

Je voudrais donc savoir s'il existe un moyen de forcer ce retour à la ligne. Merci (le wrap ne marche pas sous firefox me semble-t-il, j'ai essayé).
Merci d'avance !
KnockedMaster
nl2br () en php ?
DarkArcadius
Cette fonction est faite pour respecter les retours chariots que l'on fait dans le textarea. Je cherche une fonction qui en fait automatiquement un en bout de ligne, meme si le mot n'est pas finit. Merci quand même à toi happy.gif
captain_torche
Non, il n'existe pas de telle fonction, les césures n'étant pas connues du HTML.
Mais pour avoir ce souci, ta zone de texte doit être assez petite : le mot le plus long de la langue française étant "anticonstitutionnellement", et même en écrivant "supercalifragilisticexpialidocious", sur un textarea de taille convenable, tu ne devrais pas avoir de souci.
Donc, de deux choses l'une : ou tu agrandis ton textarea, ou tu en diminues la taille de caractère (tu peux aussi conserver ton comportement actuel).
DarkArcadius
Ok je prend note de tes idées. Merci à toi wink.gif
zavatha
Bonjour à tous,

Nouveau sur le forum, j'ai eu le problème ce matin et j'apporte une petite contribution sous la forme d'une fonction php :

CODE
function formatText($str, $max){
$len = 0;
$texte = '';
$tab = preg_split('/\s/', $str);
foreach($tab as $mot){
$len += strlen($mot);
if($len >= $max){
$texte.="</br>".$mot." ";
$len = 0;
}else{
$texte .= $mot." ";
}
}
return $texte;
}


ca prend en paramètres la chaîne à afficher (récupérée en post à partir du formulaire avec $_POST['nom_du_textarea']) et la longueur des lignes à afficher.
et puis ca coupe la ligne en fonction des blancs, et ca ajoute les retours charriots à la fin du dernier mot entier ayant atteint la longueur de ligne définie (en caractères).

c'est du basique perfectible mais ca marche pour moi wink.gif

++
zavatha


Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.