Avatar billede bmdk Nybegynder
26. juni 2008 - 23:34 Der er 5 kommentarer og
1 løsning

Vis/skjul kommentarer

Hej eksperter!

Jeg er igang med at lave et nyhedsmodel i PHP og jeg vil gerne have lavet, så man kan vise/skjule kommentarer for en given nyhed.

Jeg har fået lavet scriptet, men har det problem, at det kun virker for den sidst tilføjede nyhed. Dvs. selvom man trykker på "Vis kommentarer" for en ældre nyhed, så bliver det alligevel kommentarerne for den sidst tilføjede nyhed, der bliver vist. Hvordan kan man lave, så den viser kommentarerne rigtigt for hver enkelt nyhed?

Mit script:

      <script type="text/javascript">
      function minmax ($obj, $index) {
        var $item = document.getElementById($obj).style;
         
        if ($item.display == 'block') {
            $item.display = "none";
            $item.visibility = "hidden";
        } else {
            $item.display = 'block';
            $item.visibility = 'visible';
        }
      }
    </script>

Mit link:
<a class=link href=\"java script:minmax('visKommentar',".$id.");\">Vis kommentarer</a>

DIV'en hvori PHP/SQL til at trække kommentarer ud ligger i:
<div id=\"visKommentar\" style=\"display: none;\">--php & sql her--</div>

I kan se problemet på: www.kvarterets-drenge.dk

Beklager, hvis dette skulle være posted i PHP sektionen, men gør ud fra det må være noget JS der skal ændres i, før det virker?

På forhånd tak for hjælpen.

Mvh. Bo
Avatar billede mclemens Nybegynder
27. juni 2008 - 01:03 #1
function minmax skal måske være:

      function minmax (elm) {
        var elm = document.getElementById('kommentar'+elm).style;
        elm.display=elm.display=='none'?'block':'none'
        elm.visibility=elm.visibility=='hidden'?'visible':'hidden'
      }

(slettede $index da jeg ikke kan se behovet)
... hvis du fjerner visibility:hidden; fra kommentarer kan denne
slettes:  elm.visibility=elm.visibility=='hidden'?'visible':'hidden'

                    <div id="visKommentar" style="display: none;">
skal rettes til
                    <div id="kommentar##" style="display: none;">
hvor ## er kommentar nr. (aldrig 2 ens id på samme side)

og så kald vis kommentar med:

<a class="link" href="java script:minmax(75);">Vis kommentar</a>'
(hvor "75" eksisterer som et element med id="kommentar75"
Avatar billede roenving Novice
27. juni 2008 - 01:05 #2
-- du skal vel bare navngive dine kommentar-ting med forskellige ids, og så afspejle det i koden ?-)
Avatar billede bmdk Nybegynder
27. juni 2008 - 01:28 #3
Hey og tak for svarene :)

Det ser ikke helt ud til at virke stadigvæk - den gør ikke rigtig noget, som det er nu.

Brugte din minmax function, mclemens og lavede link og div sådan her:

<a class=\"link\" href=\"java script:minmax($id);\">Vis kommentarer</a>

<div id=\"$kId\" style=\"display: none;\">

.. hvor $kId er id'et på min kommentar i databasen.

Måske har jeg forstået idéen forkert? :)
Avatar billede mclemens Nybegynder
27. juni 2008 - 01:41 #4
Næsten...
<div id=\"kommentar$kId\" style=\"display: none;\">
Avatar billede bmdk Nybegynder
27. juni 2008 - 01:42 #5
Jeg fik det til at virke! Tusind tak for hjælpen :)
Avatar billede mclemens Nybegynder
27. juni 2008 - 01:43 #6
Velbekom, sov godt og tak 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