Avatar billede Fiber Bjørn Juniormester
03. marts 2011 - 21:36 Der er 5 kommentarer og
1 løsning

Vis kun de første 3 linier

Jeg efterspørger en funktion der gør at der kun vises de første 3 linier eller også kun F.eks 300 bogstaver og derefter kan vælge at se det hele.

Kan dette lade sig gøre?

Her er koden taget ud fra resten af siden.
Det er "tekst" jeg gerne kun vil vise 3 linier af eller 300 bogstaver.

$limit = 9999;
if($subpageId==2){$limit = 9999;}
$query = mysql_query("select * from dgi_forside order by id DESC limit $limit");
while($getter = mysql_fetch_array($query)){

echo nl2br($getter['overskrift']);
echo nl2br($getter['underoverskrift']);
echo nl2br($getter['dato']);
echo nl2br($getter['tekst']);
}
Avatar billede jakobdo Ekspert
03. marts 2011 - 22:00 #1
Du kunne klippe teksten op ala:

$max_len = 5;
$tekst = "Meget lang tekst";
if(strlen($tekst)>$max_len)){
  $intro = substr($tekst,0,$max_len);
  $rest = substr($tekst,$max_len);
}

og så skal du "bare" indbygge lidt:
http://www.cssnewbie.com/example/showhide-content/
Avatar billede danco Nybegynder
03. marts 2011 - 22:55 #2
Som Jakob er inde på er det langt det letteste at gøre det ud fra et antal tegn.
Men hvis du har noget i streng der indikerer et linjeskift burde det ikke være noget problem at løbe teksten igennem indtil 4. linjeskift og så cutte teksten der.
Avatar billede Junkuhn Nybegynder
07. marts 2011 - 17:07 #3
Du kan også benytte dig af SQL's LEFT()..

Din query kunne se sådan ud:

$query = mysql_query("SELECT overskrift, underoverskrift, dato, tekst, LEFT(tekst, 300) AS tekst_lille FROM dgi_forside ORDER BY id DESC limit $limit");

echo nl2br($getter['overskrift']);
echo nl2br($getter['underoverskrift']);
echo nl2br($getter['dato']);
echo nl2br($getter['tekst_lille]);
echo nl2br($getter['tekst']);
Avatar billede Fiber Bjørn Juniormester
11. marts 2011 - 00:05 #4
#1
Jeg brugte dit svar blandet med noget andet jeg havde fundet.
Læg et svar.


$max_len = 200;
$tekst = $getter['tekst'];
if(strlen($tekst)>($max_len)){
// jeg klipper til 25 for jeg gider ikke skrive så lang en streng
$str = substr( $str, 0, $max_len );  // de 25 første
        // men det er nok midt i et ord så vo søger bagfra efter et mellemrum
$pos = strrpos( $str, " " );
$str = substr( $str, 0, $pos );    // klip det halve ord af
$str = $str .' ...<br /><a href="vis_alt_tekst_forside.php?se_alt_tekst='.$getter['id'].'">Vis mere</a>';              // og fortæl der er mere i den nyhed.

echo $str;
}
else
{ echo $getter['tekst'];}
Avatar billede jakobdo Ekspert
11. marts 2011 - 11:16 #5
Svar!
Avatar billede jakobdo Ekspert
12. marts 2011 - 14:33 #6
Takker for point.
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