Avatar billede twistedup Nybegynder
27. juli 2007 - 19:31 Der er 5 kommentarer og
1 løsning

Repeat region og vis/skjul funktion

Hej Eksperter,

Jeg prøver at lave en funktion, hvor brugeren ved at klikke på et link åbner en lille div-boks med yderligere oplysninger.

Jeg henter et firmanavn fra min MySQL database og repeat'er rækken i tabellen som brugeren ser således at alle emner vises.
Vis/skjul funktionen virker fint, men den åbner kun div'en for det første emne i tabellen - ligemeget om jeg vælger et link ud for de andre emner.

Hvad gør jeg forkert? Her er min kode:

  <script type="text/javascript">
<!--
  function getElm(ID) {
      if (document.getElementById) {
          return document.getElementById(ID);
      }
      else if (document.all) {
          return document.all[ID];
      }
      else { return false;}
  }
  function showhide(elmID) {
      elm = getElm(elmID);
      if (elm && elm.style) {
            if (elm.style.display == "block") {
                elm.style.display = "none";
            }
            else {
                elm.style.display = "block";
            }
      }
      return false;
  }
// -->
    </script>
   
   
<table width="50%" border="0" cellspacing="0" cellpadding="2">
  <?php do { ?>
  <tr>
    <td width="80%"><?php echo $row_rsEmneListe['firmanavn']; ?></td>
    <td>  <?php
  if ($_GET['visible'] == "true") {
        echo '<a href="?visible=false" onclick="return showhide(\'boks\');">Vis/skjul</a>';
  }
  else {
        echo '<a href="?visible=true" onclick="return showhide(\'boks\');">Vis/skjul</a>';
  }
?></td>
  <tr><td colspan="2">
  <div id="boks" style="display:<?php echo ($_GET['visible'] == "false") ? 'block' : 'none';?>;">
  <?php echo $row_rsEmneListe['tekst_kort']; ?>
  </div></td>
  </tr><?php } while ($row_rsEmneListe = mysql_fetch_assoc($rsEmneListe)); ?>
</table>
Avatar billede jakobdo Ekspert
27. juli 2007 - 20:44 #1
Du skal huske ID skal være unikt.
Du bruger id=boks

Prøv id="boks'.$row_rsEmneListe['id'].'"

Og du skal så rette i dine javascript kald:

if ($_GET['visible'] == "true") {
        echo '<a href="?visible=false" onclick="return showhide(\'boks'.$row_rsEmneListe['id'].'\');">Vis/skjul</a>';
  }
  else {
        echo '<a href="?visible=true" onclick="return showhide(\'boks'.$row_rsEmneListe['id'].'\');">Vis/skjul</a>';
  }
Avatar billede twistedup Nybegynder
27. juli 2007 - 20:50 #2
hmm, så virker funktionen ikke - der sker ingenting, når jeg klikker på linket..?
Avatar billede twistedup Nybegynder
27. juli 2007 - 20:53 #3
har sat det sådan her ind:


  <script type="text/javascript">
<!--
  function getElm(ID) {
      if (document.getElementById) {
          return document.getElementById(ID);
      }
      else if (document.all) {
          return document.all[ID];
      }
      else { return false;}
  }
  function showhide(elmID) {
      elm = getElm(elmID);
      if (elm && elm.style) {
            if (elm.style.display == "block") {
                elm.style.display = "none";
            }
            else {
                elm.style.display = "block";
            }
      }
      return false;
  }
// -->
    </script>
   
   
<table width="50%" border="0" cellspacing="0" cellpadding="2">
  <?php do { ?>
  <tr>
    <td width="80%"><?php echo $row_rsEmneListe['firmanavn']; ?></td>
    <td>  <?php
   
   
   
if ($_GET['visible'] == "true") {
        echo '<a href="?visible=false" onclick="return showhide(\'boks'.$row_rsEmneListe['id'].'\');">Vis/skjul</a>';
  }
  else {
        echo '<a href="?visible=true" onclick="return showhide(\'boks'.$row_rsEmneListe['id'].'\');">Vis/skjul</a>';
  }
?></td>
  <tr><td colspan="2">
  <div id="boks'.$row_rsEmneListe['id'].'" style="display:<?php echo ($_GET['visible'] == "false") ? 'block' : 'none';?>;">
  <?php echo $row_rsEmneListe['tekst_kort']; ?>
  </div></td>
  </tr><?php } while ($row_rsEmneListe = mysql_fetch_assoc($rsEmneListe)); ?>
</table>
Avatar billede twistedup Nybegynder
27. juli 2007 - 21:15 #4
Fik det selv til at virke :)
ID skulle stå således:

id="boks<?php echo $row_rsEmneListe['id']; ?>"

Tak for hjælpen jakobdo - smid et svar så får du point
Avatar billede jakobdo Ekspert
27. juli 2007 - 22:02 #5
Svar!
Avatar billede jakobdo Ekspert
29. juli 2007 - 11:08 #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