ugrás a tartalomhoz

Rejtett div php-n belül.

Nagy Tamás · 2011. Ápr. 9. (Szo), 12.50
Sziasztok!

Ismételten elakadtam. A következőt szeretném. Van egy adatbázisom, ami fel van töltve adatokkal. És mikor megszeretném nézni az adatbázist, hogy mi tartozik benne, akkor csak a címét írassa ki, majd ha rákattintok a címére, akkor a címhez tartozó adatokat is kiírja egy rejtett div-ben.

Odáig eljutottam, hogy kiírja a címeket, be is linkeli nekem, de ha rákattintok akármelyik linkre, csak az első tábla adatait jeleníti meg.

A kód a következő lenne. Szívesen fogadok javaslatot, vagy ötletet, mert én már kezdek kifogyni.

Köszönöm szépen.
  1. public function osszeskonyv(){  
  2.         print("<br><br><br><br><br><br><br>");  
  3.         $this->utasitas=mysql_query("SELECT * FROM konyvtar;");  
  4.         $szam=mysql_num_rows($this->utasitas);  
  5.         print('<script language="JavaScript" type="text/javascript">  
  6.   
  7. function showkf(mit){  
  8. if (document.getElementById("rejtett"+ mit).style.display=="none")  
  9.   {  
  10.     document.getElementById("rejtett"+ mit).style.display = "inline";  
  11.     document.getElementById("cime"+ mit).style.height="300px";  
  12.   }  
  13.   else  
  14.   {  
  15.     document.getElementById("rejtett"+ mit).style.display ="none";  
  16.     document.getElementById("cime"+ mit).style.height="25px";  
  17.   }  
  18. }  
  19. </script>');  
  20.         for($j=0;$j<$szam;$j++){  
  21.             $egysor=mysql_fetch_array($this->utasitas);  
  22.             $kiolvas1stripslashes($egysor['cim']);  
  23.             $kiolvas2stripslashes($egysor['szerzo']);  
  24.             $kiolvas3stripslashes($egysor['tema']);  
  25.             $kiolvas4stripslashes($egysor['reszletek']);  
  26.               
  27.     print('  
  28.   
  29. <div id="cime" align="center">  
  30. <a href="#" title="Mutat/Elrejt" onclick="showkf(\''.$egysor['id'].'\');return false;">'.$kiolvas1.'</a>');  
  31. print('<div id="rejtett'.$egysor['id'].'" style="display:none"><div align="center"><br>  
  32.   <table width=719 height=232 border=3>  
  33.       
  34.      
  35.     <tr>  
  36.       <td width=139 bgcolor="#FFCC00"><div align="right"><b>Könyv címe:</b></div></td>  
  37.       <td width=269 bgcolor="#FFCC00">'.$kiolvas1.'</td>  
  38.        
  39.       
  40.               
  41.     <tr>  
  42.       <td bgcolor="#FFCC00"><div align="right"><b>Szerző:</b></div></td>  
  43.       <td bgcolor="#FFCC00">'.$kiolvas2.'</td>  
  44.     </tr>  
  45.     <tr>  
  46.       <td bgcolor="#FFCC33"><div align="right"><b>Könyv témája:</b><strong>s:</strong></div></td>  
  47.       <td bgcolor="#FFCC00">'.$kiolvas3.'</td>  
  48.     </tr>  
  49.     <tr>  
  50.       <td bgcolor="#FFCC33"><div align="right"><b>Részletek:</b><strong>:</strong></div></td>  
  51.       
  52. <td bgcolor="#FFCC00">'.$kiolvas4.'</td>  
  53.         
  54.       </tr>    
  55.      </table>  
  56.    
  57. </div>  
  58. <p>&nbsp;</p></div>  
  59. </div>');   
  60.     }  
  61.     }  
 
1

Biztos ezt akarod?

plip · 2011. Ápr. 9. (Szo), 16.02
"... akkor a címhez tartozó adatokat is kiírja egy rejtett div-ben. "
Mi értelme rejtett divben kiíratni valamit?
Szerintem így kellene: minden címhez kiíratod rejtett divben a többi adatot, és amikor rakattintasz, megjeleníted a divet.
2

Köszönöm!

Nagy Tamás · 2011. Ápr. 9. (Szo), 16.40
Igen elírtam.
Ha rákattintanak a címre, akkor írassa ki egy táblázatban a többi adatot.
3

Attól függ.

ironwill · 2011. Ápr. 11. (H), 10.52
Ha nagyon hosszú a lista, akkor időbe telhet az összeset lekérni és kiíratni, ezért érdemes pl. lapozással korlátozni a egyszerre megjelenítendő elemeket, vagy ajax-osan megoldani.

Én a csapatunk holnapján, mivel nincs volt túl sok adat ezért simán kiírattam és jQuery-vel oldottam meg a rejtegetést: http://www.szpakosar.hu/news.php

Nagyjából valami ilyesmi (nem teszteltem a kódot):
  1. $content = '<div class="wrapper">';  
  2. while ($row = mysql_fetch_array(..)) {  
  3. $content .= '<div class="box">';  
  4. $content .= '<div class="title">klikk ide</div>';  
  5. $content .= '<div class="content">  
  6.   <table>  
  7.     <tbody>  
  8.       <tr>  
  9.         <td>tartalom</td>  
  10.         <td>tartalom</td>  
  11.         <td>tartalom</td>  
  12.       </tr>  
  13.     </tbody>  
  14.   </table>  
  15. </div>';  
  16. $content .= '</div>';  
  17. }  
  18. $content .= '</div>';  
  19.   
  20. print $content;  
  1. ..  
  2. $(".box .content").hide();  
  3. $(".box:first-child .content").show();  
  4. $(".box .title").click(function() {  
  5.   if ($(".content", $(this).parent()).is(":hidden")) {  
  6.     $(".content", $(this).parent().parent()).hide();  
  7.     $(".content", $(this).parent()).animate({opacity: "show"}, "fast");  
  8.   }  
  9. });  
  10. ..  
4

Köszönöm!

Nagy Tamás · 2011. Ápr. 11. (H), 19.39
A kód az hibás volt, de a Te ötleted alapján indultam ki, és kerestem egy plugin-t!

Köszönöm!