Supprimer saut de ligne dans textarea

Résolu
JF11 Messages postés 39 Statut Membre -  
JF11 Messages postés 39 Statut Membre -
Bonjour,
Il y a un truc qui m'échappe !
Soit un textarea $toto
Si je saisis dans $toto : "ligne1
ligne2
ligne3"

je souhaite récupérer la valeur de toto sous la forme "ligne1<br>ligne2<br>ligne3"
Or je récupère :
"ligne1
ligne2
ligne3"

Normal me dis-je, il suffit de remplacer les \n ou les \r par <br>
str_replace('\n','<br/>',htmlentities ($_POST['toto']
ben non, j'ai toujours la même chose

idem avec nl2br, j'obtiens :

"ligne1<br />
ligne2<br />
ligne3"
comment enlever ce saut de ligne ?
Merci pour votre aide
JF

3 réponses

  1. JF11 Messages postés 39 Statut Membre 2
     
    Merci pour ta réponse mais c'est toujours pas ça...
    c'est ok à l'affichage, mais...
    En fait, il faut que j'affecte $toto à une variable javascript.

    var1:"<?php print nl2br($toto);?>

    va me donner :
    var1:"ligne1<br>
    ligne2<br>
    ligne3" ce qui provoque une erreur

    il me faudrait : var1:"ligne1<br>ligne2<br>ligne3"
    1
    1. Utilisateur anonyme
       
      il faut faire attention au retours à la ligne ils sont pas traités de la même façon:

      essaie:


      if(isset($_POST['toto'])){
      
      $str=str_replace("\n","<br />",$_POST['toto']);
      $str=str_replace("\r\n","<br />",$str);
      $str=str_replace("\r","",$str);
      
      echo"<script type='text/javascript'>
      
      var str='$str';
      
      alert(str);
      
      </script>";


      j'espère que ceci t'aide....
      0
  2. Utilisateur anonyme
     
    tout à fait il faut juste faire attention aux retours à la ligne ils ne sont pas exprimés de la même façon dans tout les systèmes \r\n pour windows et \n pour les systèmes unix.

    je dirai que
    htmlentities(nl2br($_POST['toto']),ENT_QUOTES);


    marchera bien.
    0
  3. JF11 Messages postés 39 Statut Membre 2
     
    En effet, il faut mettre double quote
    str_replace("\n","<br />",$_POST['toto']);
    et non
    str_replace('\n','<br/>',$_POST['toto']);

    Merci beaucoup pour ton aide !
    JF
    0