textarea Eingaben sprengt die Breite

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • textarea Eingaben sprengt die Breite

    Hallo,
    ich habe in einem Formular ein Texterea:
    <textarea name="beschreibung" style="font-size: 11px;" cols="80" rows="30" wrap="virtual"></textarea>

    Das Problem ist, das manche User bei den Eingaben keine Freizeichen bzw. die Leertaste betätigen. Die Folge ist, das der gesamte Text auf die Breite aufgeteilt wird.
    Ich möchte aber, das die Breite erhalten bleibt.
    Gibt es da einige Tricks, wie ich das erreiche?

    L.G. Martin
    Gut geraten ist halb gewußt.

  • #2
    Ich nehme an, du speicherst die Eingabe in einer DB und gibst diese später wieder mit PHP aus.
    Schau dir dazu mal die Funktion
    PHP-Code:
    wordwrap(), 
    im Handbuch an.

    Kommentar


    • #3
      Ja, diese Funktion kenne ich, habe sie aber bis jetzt noch nicht dafür angewendet weil ich für die Breite eine feste Größe definiert habe.
      Also z.B. width:200px
      Da die Buchstaben eine unterschiedliche Breite haben ist die Länge für
      wordwrap schwer zu sagen.
      Wenn man jetzt z.B. als Länge 80 nimmt, denn kann es ja sein das der Platz der für den Text vorhanden ist nichtausgenutzt wird.
      Aber ich glaube jetzt fällt mir was ein.

      Ich müßte vor der Textausgabe überprüfen, ob Leerzeichen in einem Bestimmten Abstand (z.B. 80 Zeichen) vorhanden sind, wenn ja, dann Text einfach ausgeben, wenn nein, dann die Funktion verwenden.
      Was haltet Ihr davon?
      Aber wie überprüfe ich das am besten?
      Am besten den Text mit einer Schleife durchlaufen oder mit explode zerlegen und die einzelnen Inhalte einzeln auf Länge prüfen.
      Gut geraten ist halb gewußt.

      Kommentar


      • #4
        Du lässt in einer schleife immer strpos mit einem offset des vorherigen durchlaufs auf den text los und vergleichst die differenz der beiden durchläufe

        Kommentar


        • #5
          Hab das jetzt so gelöst.
          PHP-Code:
          function WortBreite($text$breite$zeichen "<br>"$cut 1)
          {
              
          $array explode(' '$text);    
              
          $count count($array);    
              for (
          $i 0$i $count$i++) 
                  
          $array[$i] = " ".(strlen($array[$i]) > $breite wordwrap($array[$i], $breite$zeichen$cut) : $array[$i]);    
              return 
          implode($array);

          Gut geraten ist halb gewußt.

          Kommentar

          Lädt...
          X