Avatar billede q^bone Nybegynder
20. juli 2006 - 14:31 Der er 9 kommentarer og
2 løsninger

expand/udvid funktion

Jeg har en shoutbox på min side som følger et design ved at jeg har sat en limit på indholdet af beskederne.
Dette vil jeg nu ændre så der f.eks. står 200 chars og så "..." efterfulgt af en text, evt. "expand".

Når man så klikker på ekspand udvider højden sig og hele teksten skal så vises.
Kan nogle hjælpe mig med denne funktion?

Når jeg udskriver i shoutboxen bruger jeg p.t. følgende;

<tr>
<td colspan=\"3\" class=\"shoutbox\" align=\"left\" valign=\"top\">
  <div style=\"margin:7px;\"><b>$skribent</b><br/>
    $besked
  </div>
</td>
</tr>
Avatar billede gizmo-gizmo Nybegynder
20. juli 2006 - 15:25 #1
Brug substr() til at finde de første 200 tegn af $besked.

Expand funktionen kan laves vha. javascript, f.eks. noget i retning af:

<span style="cursor: pointer;" onclick="document.getElementById('besked1').style.display=(document.getElementById('besked1').style.display == 'none') ? 'block' : 'none';">
  (Udvid)
</span>

<div id="besked1" style="display: none;">
  Here goes the full message
</div>
Avatar billede q^bone Nybegynder
21. juli 2006 - 15:53 #2
Det virker ganske fint. Eneste problem jeg har er at den laver et linie skift mellem de første 200 tegn og resten af teksten.
Her er min kode:

<div style=\"margin:7px;\">
<b>$skribent&nbsp;<span style=\"cursor: pointer;\" onclick=\"document.getElementById('besked$id').style.display=(document.getElementById('besked$id').style.display == 'none') ? 'block' : 'none';\">(udvid)</span></b>
<br />".substr($besked,0,200)."<div id=\"besked$id\" style=\"display: none;\">".substr($besked,200)."
</div></div>

Hvis du kan løse dette er pointene dine :)
Avatar billede gizmo-gizmo Nybegynder
21. juli 2006 - 16:07 #3
Prøv med:

<div style=\"margin:7px;\">
<b>$skribent&nbsp;<span style=\"cursor: pointer;\" onclick=\"document.getElementById('besked$id').style.display=(document.getElementById('besked$id').style.display == 'none') ? 'block' : 'none';\">(udvid)</span></b>
<br />".substr($besked,0,200)."<span id=\"besked$id\" style=\"display: none;\">".substr($besked,200)."
</span></div>
Avatar billede q^bone Nybegynder
21. juli 2006 - 16:20 #4
virkede præcis som før.
Men jeg fandt selv fejlen. istedet for at ændre display til block skal den ændres til inline

inline:
The element will be displayed as an inline element, with no line break before or after the element

Men du får alligevel pointene. tak for hjælpen :)
Avatar billede q^bone Nybegynder
21. juli 2006 - 16:21 #5
oh, og de forskellige display værdier kan ses her: http://www.w3schools.com/css/pr_class_display.asp
Avatar billede q^bone Nybegynder
21. juli 2006 - 16:24 #6
Hmm. Jeg ved godt at spørgsmålet er lukket nu. Men hvis du kan hjælpe mig med en sidste ting ville det være great.

Istedet for at den viser de første 200 tegn og derefter resten når jeg trykker udvid. Kan den så ændres således at de første 200tegn bliver skjult og hele teksten vist når man trykker udvid?

Problemet er at jeg har smileys på tagwallen og hvis de første 200 tegn slutter af med koden <img src="smileys/happy.gif
så mangler der pludselig noget kode og så vises smileyen ikke korrekt.
Avatar billede gizmo-gizmo Nybegynder
21. juli 2006 - 16:30 #7
Jeg fortår ikke helt hvad du vil, MEN, hvis den cutter inde midt i et tag (en smiley), så kan du skære det væk f.eks. på denne måde:

$short = substr($besked,0,200);
$short = preg_replace("/<([^<]*)$/", "", $short);
Avatar billede gizmo-gizmo Nybegynder
21. juli 2006 - 16:31 #8
Ups...
$short = preg_replace("/<([^>]*)$/", "", $short);
Avatar billede q^bone Nybegynder
21. juli 2006 - 16:51 #9
mja, men det skal jo ikke skæres væk :S

Det jeg vil have er sådan her hvis du forstår:

<div id="short" style="display: inline">".substr($besked,0,200)."</div>
<div id="full" style="display: none">".$besked."</div>

Når man så klikker "udvid" så ændres short til display: none og full til display: inline.

Ved ikke helt om man kan på den måde, men håber det giver en ide.
Avatar billede q^bone Nybegynder
21. juli 2006 - 17:29 #10
Hmm der er opstået nogle problemer, jeg opretter en ny tråd under javascript, da den nok hører mere under den kategori :) Tak for hjælpen
Avatar billede q^bone Nybegynder
21. juli 2006 - 17:36 #11
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

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Capgemini Danmark A/S

AI Data Architect

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Kryptokustode til opbygning af Forsvarets nye IT-platform