|
|||
Tabelle auf & zu
Servus,
habe durch verschiedene codeschnipsel mir ein script zusammen gebastelt das bei onclick mir mehrere Tabellen öffnet und auch wieder schließt. Das Problem ist nur, das ich das ganze via getElementByID mache und die Tabellen in einer while Schleife ausgegeben werden, sprich jedes mal neue ID´s brauchen. Das habe ich momentan so gelöst, dass ich verschiedene variablen mit werten belege: $i = 1; $y = 2; ... usw. diese übergebe ich auch an das script und er schließt sie mir auch alle und öffnet sie, zumindest bis zur zweiten Ausgabe der Schleife, dort öffnet er mir trotzdem wieder alle Tabellen von Ausgabe 1. Das liegt daran, dass ich die variablen jeweils nur um 1 erhöht hab, somit sind die ID´s in Ausgabe 2 und 1 ja wieder bis auf die letzte gleich. Setzte ich die variablen nun auf $i = 10; oder sogar 100 und die nächste auf dementsprechend 20 oder 200 öffnet er mir aber nur noch die erste Ausgabe, bei der zweiten macht er dann garnichts mehr. Codeschnipsel: Code:
<script> function toggle_button(button_id, id, id1, id2, id3, id4) { if(document.getElementById(id).style.display == 'block') { document.getElementById(button_id).value='Aufklappen'; document.getElementById(id).style.display='none'; document.getElementById(id1).style.display='none'; document.getElementById(id2).style.display='none'; document.getElementById(id3).style.display='none'; document.getElementById(id4).style.display='none'; } else { document.getElementById(button_id).value='Zuklappen'; document.getElementById(id).style.display='block'; document.getElementById(id1).style.display='block'; document.getElementById(id2).style.display='block'; document.getElementById(id3).style.display='block'; document.getElementById(id4).style.display='block'; } } </script> Code:
$i = '10'; $y = '20'; $c = '30'; $v = '40'; $b = '50'; $abfrage = "SELECT * FROM Adressen ORDER BY fname ASC LIMIT $offset, $seite"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { ... <input id="button_z" type="button" value="Aufklappen" onClick="javascript:toggle_button('button_z', '<?php echo $i; ?>', '<?php echo $y; ?>', '<?php echo $c; ?>', '<?php echo $v; ?>', '<?php echo $b; ?>');"> ... <table width="100%" border="1" id="<?php echo $i; ?>" style="display:none;">...</table> <table width="100%" border="1" id="<?php echo $y; ?>" style="display:none;">...</table> <table width="100%" border="1" id="<?php echo $c; ?>" style="display:none;">...</table> <table width="100%" border="1" id="<?php echo $v; ?>" style="display:none;">...</table> <table width="100%" border="1" id="<?php echo $b; ?>" style="display:none;">...</table> ... $i++; $y++; $c++; $v++; $b++; } |
Sponsored Links |
Sponsored Links |
|
|||
Zitat:
Ich kann ja nicht die selben id´s vergeben, da das ganze ja in einer while schleife ist die mehrere ausgaben macht. |
|
||||
du musst natürlich i bei jedem Durchgang um 1 hochzählen - dann bleibt die TabellenID immer eindeutig.
Und noch kleiner Schönheitstipp: Verwende für die Tabellen doch eine CSS Klasse anstatt den Inline Style jedesmal neu zu schreiben - also in etwa so: HTML-Code:
.tabelle { width = 100%; display = none; } <table class="tabelle"></table> Beispiel (nicht getestet) mit jQuery: Code:
function showhideTable(tabellenID) { //Alle Tabellen ausblenden $('.tabelle').hide(); //Die gewünschte Tabelle wieder einblenden $('#' + tabellenID).show(); }
__________________
Geändert von In4matiker (03.08.2010 um 13:51 Uhr) |
|
|||
Zitat:
Code:
$i++; $y++; $c++; $v++; $b++; } Dennoch klappt er mir nur die erste ausgabe der while schleife auf und zu, die anderen durch ihren eigenen button nicht. |
|
|||
Zitat:
|
|
||||
Möglicherweise stimmt etwas an der Verschachtelung der Tabellen nicht. 66 HTML Validierungsfehler (Doctype + wichtige Tags habe ich bei mir ergänzt) und bei diversen motzt er dass Tabellen Elemente nicht geschlossen seien. Das könnte erklären warum es beim 1. klappt und beim Rest nicht.
Und du solltest wirklich noch ein Buchstabe vor die IDs setzen - z.B. ein kleines "t" - glaube nur Zahlen gibt in einigen Browsern Probleme. Und erwähnen dass diese Art von Tabellen Verschachtelung und Form Design vor 10 Jahren vielleicht aktuell war, müssen wir ja nicht.
__________________
|
Sponsored Links |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
IE6: Inhalte bei großer Tabelle verschwunden | C-rank | CSS | 3 | 05.01.2008 14:23 |
Tabelle erscheint innerhalb eines DIVs | FBI | CSS | 1 | 27.06.2007 02:39 |
Tabelle height 100% im IE | paule | CSS | 0 | 09.05.2007 13:27 |
Mysql: Tabelle Ordnen, nach Integer Werten (timestamp) oder Zeitformaten? | braindead | Serveradministration und serverseitige Scripte | 8 | 14.03.2007 21:21 |
FF: Tabelle in Tabelle centern | wuschba | CSS | 2 | 20.07.2006 11:00 |