Aufklabbares Menü

Godshaver

Grünschnabel
Aufklappbares Menü

Seid gegrüßt,

ich habe folgendes Problem, ich habe ein aufklappbares Menü, das funktioniert soweit wunderbar, dedoch lasse ich die Werte die ein- und ausgeblendet werden sollen via php/sql abfragen.

Wenn ich jetzt auf die onklick-Funktion klicke, blendet er mir nur ein Element ein/aus
über die Datenbank werden aber mehrere Elemente generiert, diese beachtet es garnicht und blendet immer nur das erste ein/aus

die "menu.js"

PHP:
if (document.getElementById){ //DynamicDrive.com change
document.write('<style type="text/css">\n')
document.write('.submenu{display: none;}\n')
document.write('</style>\n')
}

function SwitchMenu(table){
if(document.getElementById){
var el = document.getElementById(table);
var ar = document.getElementById("masterdiv").getElementsByTagName("table");
if(el.style.display != "block"){
for (var i=0; i<ar.length; i++){
if (ar[i].className=="submenu")
ar[i].style.display = "none";
}
el.style.display = "block";
}else{
el.style.display = "none";
}
}
}

hier die Tabellen die mit den onklick-Ereigniss arbeiten

"Hauptmenu"

HTML:
      <table border='1' id='masterdiv' width='100%' id='table4' style='border-collapse: collapse' bordercolor='#C0C0C0'>
			<tr>
				<td width='462'>$row[ckriterium]</td>
				<td width='111'>$bdurchschnitt%</td>
				<td><div style='width:200px;  height:17px; background:lightgrey;'><div style='width:$bdurchschnitt%; height:17px; background:darkblue;'></div></div></td>
			    <td width='462'><div class='menutitle' onclick=\"javascript:SwitchMenu('sub1')\"></td>
			</tr>
			</table>

"Submenu"

HTML:
      <div id='sub1'>
        <table  border='1' width='100%' id='table4' style='border-collapse: collapse' bordercolor='#E9E9E9' bgcolor='#E9E9E9'>
				<tr>
				<td width='25' bordercolor='blue'>&nbsp;</td>
				<td width='455' bordercolor='#E9E9E9'>$row[uckriterium]</td>
				<td width='120' >$ubdurchschnitt%</td>
				<td><div style='width:200px;  height:17px; background:lightgrey;'><div style='width:$ubdurchschnitt%; height:17px; background:darkblue;'></div></div></td>
			</tr>
		</table>
		</div>";

Wie gesagt wenn ich jetzt im "Hauptmenu" auf das onklick klicke, blendet er im "Submenu" nur einen Datensatz ein/aus. In der Tabelle sind aber mehrere generiert.

Ich hoffe ihr versteht wo mein Problem ist:confused:
 

Anhänge

  • Bild1.jpg
    Bild1.jpg
    10,5 KB · Aufrufe: 30
  • Bild2.jpg
    Bild2.jpg
    10,6 KB · Aufrufe: 25
Zuletzt bearbeitet:
wenn ich dich richtig versteh, gibst du den block:

Code:
      <div id='sub1'>
        <table  border='1' width='100%' id='table4' style='border-collapse: collapse' bordercolor='#E9E9E9' bgcolor='#E9E9E9'>
				<tr>
				<td width='25' bordercolor='blue'>&nbsp;</td>
				<td width='455' bordercolor='#E9E9E9'>$row[uckriterium]</td>
				<td width='120' >$ubdurchschnitt%</td>
				<td><div style='width:200px;  height:17px; background:lightgrey;'><div style='width:$ubdurchschnitt%; height:17px; background:darkblue;'></div></div></td>
			</tr>
		</table>
		</div>";

mehrfach per while-schleife aus, um alle datensätze aus der datenbank zu holen, richtig?

Hinweis: die ID eines Objekts (id="") darf im gesamten Dokument nur ein einziges mal vorkommen. sprich: element 1 bekommt id="element1", element 2 bekommt id="element2" usw. Wenn du in der tat den obrigen Code per while-schleife mehrfach so ausgibts und die IDs nicht dementsprechend änderst, wunderts mich nicht, dasses nicht funktioniert.

Lösung:

PHP:
...
echo '<a href="#" onclick="SwitchMenu(\'showhideme\');">Klick mich um element zu zeigen/verstecken</a>';
...
echo '<div id="showhideme" style="display:none;">';
while($getcontent = mysql_fetch_object($abfrage)):
     echo $getcontent->content;
endwhile;
echo '</div>';
...

...iss nur n grober Denkansatz.
 

Neue Beiträge

Zurück