Avatar billede compac Seniormester
08. december 2006 - 16:08 Der er 4 kommentarer og
1 løsning

Udvidelse af tekstareal.

Dette kan vel være et spørgsmål, som hører hjemme i flere kategorier, men da jeg sidder med php-kode så...
Når jeg henter tekst ud fra min database til et tekstfelt, hvordan får jeg så feltet til at øges i højden efterhånden som det bliver udfyldt? - eller blot få den størrelse i højden der passer til mændgen af tekst.
Avatar billede elskermad.dk Nybegynder
08. december 2006 - 16:16 #1
via javascripts offsetHeight, men virker (vist) kun i IE
Avatar billede elskermad.dk Nybegynder
08. december 2006 - 16:17 #2
<textarea name='tekst' onKeyUp='this.style.height=this.offsetHeight'>hgjdsng jfdn gjdfn gjfdn gjfdng jfdsngjrnw gjnfdskj gnfkjdsgjkedng nfrignrsd ngfkjn kjbvnvjkfdn vkjnfdgjkrne guewrnb gvnfdkj vnfkjv kfdn vkdn jbfnbiufnbkjfdn bkjvfd kjsnbkjdfs</textarea>

mener det er noget lignende
Avatar billede elskermad.dk Nybegynder
08. december 2006 - 16:19 #3
textareas har vist ikke offsetHeights, så skal du ind i en div og så lave noget editable
Avatar billede schneidereit Nybegynder
08. december 2006 - 22:24 #4
Hej Compac,

Jeg har lavet en funktion der gør som ønsket, dog er det ikke en 100% bulletproof løsning, som jeg har skrevet i selve koden, tager den f.eks. ikke højde for indrykninger (tabs).

Hvis det er den vej du vil gå, så er der noget at bygge videre på.

Optimalt så finder du en skrifttype hvor alle tegn har samme længde - Lucida Console eksempelvis.



Venlig Hilsen Casper

<?php
/*
TextareaAutoHeight()
Beregn hvor mange rows et TextareaAutoHeight skal være for at kunne indholde Xantal tegn, uden at der kommer scrollbar. !!!! Bemærk tager ikke højde for TABS (\t) !!!!
*/
function TextareaAutoHeight($data) {

    /* Sætter antal tegn der er pr. linie i textarea'et */
    $antal_tegn_pr_linie=25;

    /* Hvor mange tegn har vi i alt, uden linieskift, da de tæller for en linie hver */
    $data_antal_tegn=strlen(str_replace("\n","",$data));
   
    /* Hvor mange linieskift er der */
    $tmp=explode("\n",$data);
    $antal_linieskift=count($tmp)-1;
   
    /* Returnere antal linier der skal være i textarea */
    return $antal_linieskift+ceil($data_antal_tegn/$antal_tegn_pr_linie);
}     
print TextareaAutoHeight("idjffdij\nfdfddfdfddffdfdfd\nj\n")
                                   
?>
Avatar billede compac Seniormester
09. december 2006 - 16:58 #5
Super! hvor har jeg tit manglet det!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester