textarea dynamische Größe

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

  • textarea dynamische Größe

    Ich brauche eure Hilfe, da ich bisher nicht fündig geworden bin, wie ich bei einer textarea einstellen kann, dass die höhe sich dynamisch an den textinhalt anpasst?!

    ich habe folgendes

    PHP-Code:
    echo "<table border='0' cellpadding='5' cellspacing='5'>";
    echo 
    "<tr>";  
    echo 
    "<td style='VERTICAL-ALIGN: top'><b>Ziel (max. 4000 Zeichen):</font></b> </td>"
    echo 
    "</tr>";

    echo 
    "<tr>";
    echo 
    "<td> <textarea name='Ziel' cols=100 rows=4>".$ziel" </textarea></td>";
    echo 
    "</tr>";
    echo 
    "</table>"
    Könnt ihr mir sagen, wie man sowas erzielen kann? Ich möchte keine scrollbalken aber auch nicht viel zu große felder, wenn der nutzer nur sehr wenig reinschreibt...

    Vielen dank für eure hilfe.

  • #2
    Soll sich das Feld während des Schreibens ändern oder nur bei der Ausgabe? Ersteres erreichst du mit JavaScript, zweiteres erfolgt durch PHP. Du kannst zum Beispiel die Zeilenumbrüche zählen!

    Kommentar


    • #3
      bei der ausgabe würde reichen.

      Kommentar


      • #4
        Dann zählst du die Zeilenumbrüche im Text und setzt entsprechend das rows-Attribut.

        Kommentar


        • #5
          bei der ausgabe würde reichen.
          So was in der Art...
          PHP-Code:
          $anz explode("\r\n",$ziel);
          $anz count($anz);
          echo 
          "<td> <textarea name='Ziel' cols=100 rows=".$anz.">".$ziel" </textarea></td>"
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #6
            substr_count sollte da locker ausreichen
            Beachte aber, dass du eventuell verschiedene Newline-Zeichen im String hast, also vorher nochmal normieren.

            Kommentar


            • #7
              Beachte aber, dass du eventuell verschiedene Newline-Zeichen im String hast, also vorher nochmal normieren.
              Oder gleich preg_split() verwenden mit entsprechendem Suchmuster. Wobei beim Suchmuster dann die Reihenfolge wichtig wäre also etwas wie
              Code:
              $reg= "/\r\n|\n/"
              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #8
                Ich würde beiden Lösungen str_replace und substr_count vorziehen (siehe Anhang)!
                Angehängte Dateien

                Kommentar


                • #9
                  danke euch allen!

                  Kommentar


                  • #10
                    @PHP-Desaster
                    Um wieveil Prozent war denn der RegExp langsamer als deine Version? Habe bei der Arbeit leider kein PHP zur Hand und kann mir daher die Laufzeiten nicht anschauen.
                    Obwohl bei 5000 Durchläufen wundert es mich nicht, dass der RegExp abk...t
                    Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                    [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                    Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                    Kommentar


                    • #11
                      Das sind die Ergebnisse:
                      Code:
                      Test 1: 0.0067245182991
                      Test 2: 0.00391156005859
                      Test 3: 0.00875547409058

                      Kommentar


                      • #12
                        Das sind die Ergebnisse:
                        Na damit kann ich leben...
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar

                        Lädt...
                        X