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.
public function osszeskonyv(){
		print("<br><br><br><br><br><br><br>");
        $this->utasitas=mysql_query("SELECT * FROM konyvtar;");
        $szam=mysql_num_rows($this->utasitas);
        print('<script language="JavaScript" type="text/javascript">

function showkf(mit){
if (document.getElementById("rejtett"+ mit).style.display=="none")
  {
    document.getElementById("rejtett"+ mit).style.display = "inline";
    document.getElementById("cime"+ mit).style.height="300px";
  }
  else
  {
    document.getElementById("rejtett"+ mit).style.display ="none";
    document.getElementById("cime"+ mit).style.height="25px";
  }
}
</script>');
		for($j=0;$j<$szam;$j++){
			$egysor=mysql_fetch_array($this->utasitas);
			$kiolvas1= stripslashes($egysor['cim']);
			$kiolvas2= stripslashes($egysor['szerzo']);
			$kiolvas3= stripslashes($egysor['tema']);
            $kiolvas4= stripslashes($egysor['reszletek']);
			
    print('

<div id="cime" align="center">
<a href="#" title="Mutat/Elrejt" onclick="showkf(\''.$egysor['id'].'\');return false;">'.$kiolvas1.'</a>');
print('<div id="rejtett'.$egysor['id'].'" style="display:none"><div align="center"><br>
  <table width=719 height=232 border=3>
    
   
    <tr>
      <td width=139 bgcolor="#FFCC00"><div align="right"><b>Könyv címe:</b></div></td>
      <td width=269 bgcolor="#FFCC00">'.$kiolvas1.'</td>
     
    
            
    <tr>
      <td bgcolor="#FFCC00"><div align="right"><b>Szerző:</b></div></td>
      <td bgcolor="#FFCC00">'.$kiolvas2.'</td>
    </tr>
    <tr>
      <td bgcolor="#FFCC33"><div align="right"><b>Könyv témája:</b><strong>s:</strong></div></td>
      <td bgcolor="#FFCC00">'.$kiolvas3.'</td>
    </tr>
    <tr>
      <td bgcolor="#FFCC33"><div align="right"><b>Részletek:</b><strong>:</strong></div></td>
    
<td bgcolor="#FFCC00">'.$kiolvas4.'</td>
      
      </tr>  
     </table>
 
</div>
<p>&nbsp;</p></div>
</div>');	
	}
    }
 
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):

$content = '<div class="wrapper">';
while ($row = mysql_fetch_array(..)) {
$content .= '<div class="box">';
$content .= '<div class="title">klikk ide</div>';
$content .= '<div class="content">
  <table>
    <tbody>
      <tr>
        <td>tartalom</td>
        <td>tartalom</td>
        <td>tartalom</td>
      </tr>
    </tbody>
  </table>
</div>';
$content .= '</div>';
}
$content .= '</div>';

print $content;

..
$(".box .content").hide();
$(".box:first-child .content").show();
$(".box .title").click(function() {
  if ($(".content", $(this).parent()).is(":hidden")) {
    $(".content", $(this).parent().parent()).hide();
    $(".content", $(this).parent()).animate({opacity: "show"}, "fast");
  }
});
..
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!