Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][JavaScript]Wyświetlanie ukrytego <diva> w pętli
Forum PHP.pl > Forum > Przedszkole
Czapla
Mam skrypt na wyświetlanie ukrytych <divów> po najechaniu na ikonke + wyświetla się więcej informacji o danym rekordzie w tabeli. Wszystkie informacje <divy i wpisy z bazy danych> generuje w pętli do... while.... Problem w tym że skrypt działa tylko dla pierwszego rekordu tz. można rozwinąć tylko pierwszą pozycję... Reszta jest "ślepa" na wszelkie reakcje i powoduje że ciągle wyświetla lub chowa się pierwszy rekord. Prawdopodobnie problem leży w tym że div musi mieć unikalne id dla każdego rekordy, czy ktoś wie co powinienem zroić?



  1. .hiddenRow {
  2.  display:none;
  3.  visibility:hidden;
  4. }
  5. .visibleRow {
  6.  display:;
  7.  visibility:visible;
  8. }


  1. <script language="JavaScript">
  2. <!--
  3. function showHide(HID,IMG) {
  4.  if (document.getElementById(IMG).src.indexOf('expand') != -1) {
  5.   document.getElementById(IMG).src='imgs/collapse.gif';
  6.   document.getElementById(HID).className='visibleRow';
  7.  } else {
  8.   document.getElementById(IMG).src='imgs/expand.gif';
  9.   document.getElementById(HID).className='hiddenRow';
  10.  }
  11. }
  12.  
  13. // -->


  1. <?php
  2. do{
  3.  $ID = $aDBC->FieldByName ("id");
  4.   print ("<tr onClick=showHide('rowHidden','image2'); id=".$ID.">");
  5.   print ("<td><img id='image2' src='imgs/expand.gif'></td>");
  6.   print ("<td>");
  7.  print ($aDBC->FieldByName ("tytul")); 
  8.  print ("</td>");
  9.  print ("<td width='100%'>");
  10.  print ($aDBC->FieldByName ("autor")); 
  11.  print ("</td>");
  12.   print ("<td><a href='info_dokument.php?".SID."&id_dokument=".$ID."'><b>Więcej</b></a></td>");
  13.  print ("</tr>");
  14.  print ("<tr id=".$ID."><td>+</td>");
  15.  print ("<td colspan='2' id='rowHidden' class='hiddenRow'>");
  16.  print ($aDBC->FieldByName ("opis"));
  17.  print ("</td>");
  18.  print ("</tr>");
  19.  }while ($aDBC->Next());
  20. ?>


Proszę o odpowiedź i z gory dziękuje. Pozdrawiam 





BUMP!
xbigos
tak masz racje. <div id="jakasNazwa"></div> zeby to dzialalo nazwa musi byc unikalna. Ja rozwiazuje takie cos w sposób, że w pętli do nazwy diva dodaje np unikalne id dla rekordu który obsługiwać ma mój DIV

  1. <?php
  2.  
  3. while($row = mysql_fetch_array($query)){
  4.  
  5. echo '<strong?'.$row['row_name'].'</strong>';
  6. echo '<div id="wynikDlaDrzewa'.$row['row_id'].'"></div>';
  7. }
  8. ?>

A wyświetlanie i wyszukiwanie realizuje asynchronicznie przez AJAX-a.

Powodzenia,
xbigos.
Czapla
Działa

zamiast
  1. <?php
  2. print ("<tr onClick=showHide('rowHidden','image2'); id=".$ID.">");
  3. ?>
dałem

  1. <?php
  2. print ("<tr onClick=showHide('ukryj_wiersz".$ID."','image2');>");
  3. ?>


analogicznie wszystkie rowHidden zamienilem na

  1. <?php
  2. 'ukryj_wiersz".$ID."'
  3. ?>
.

Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.