zurück zur Startseite
  


Zurück XHTMLforum > (X)HTML und CSS > (X)HTML
Seite neu laden Tabelle auf & zu

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 03.08.2010, 11:35
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 03.08.2010
Beiträge: 47
Benutzername befindet sich auf einem aufstrebenden Ast
Standard 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++;
}
ich verstehs nicht mehr
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 03.08.2010, 11:47
Benutzerbild von Scheppertreiber
Chaot und Nonkonformist.
XHTMLforum-Kenner
 
Registriert seit: 13.03.2007
Ort: Steinmark im Spessart
Beiträge: 7.458
Scheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein LichtblickScheppertreiber ist ein Lichtblick
Standard

Müssen IDs nicht mit einem Buchstaben beginnen ?
Ich würde statt der vielen Variablen abgeleitete nehmen:
i = 10:
dann zB
PHP-Code:
<table width="100%" border="1" id="<?php echo $i?>" style="display:none;">...</table>
<table width="100%" border="1" id="<?php echo $i 10?>" style="display:none;">...</table>
...
__________________
Grüße aus dem Spessart, Joe

{ table-layout: biertischistbesser; }
Der Mausinator
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 03.08.2010, 12:57
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 03.08.2010
Beiträge: 47
Benutzername befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Müssen IDs nicht mit einem Buchstaben beginnen ?
Schon, aber mir fällt nicht ein wie ich sonst die verschiedenen tabellen ansprechen soll.
Ich kann ja nicht die selben id´s vergeben, da das ganze ja in einer while schleife ist die mehrere ausgaben macht.
Mit Zitat antworten
  #4 (permalink)  
Alt 03.08.2010, 13:44
Benutzerbild von In4matiker
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 19.12.2005
Ort: Winterthur (Schweiz)
Beiträge: 158
In4matiker befindet sich auf einem aufstrebenden Ast
Standard

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>
Mit der CSS Klasse hast Du gleich noch einen handfesten Vorteil dein Tabellen-ein-und-ausblenden-Skript (function toggle_button) zu vereinfachen.

Beispiel (nicht getestet) mit jQuery:

Code:
function showhideTable(tabellenID)
{
  //Alle Tabellen ausblenden
  $('.tabelle').hide();

  //Die gewünschte Tabelle wieder einblenden
  $('#' + tabellenID).show();
}
Diese paar Zeilen machen dann in etwa das Gleiche wie dein Riesenskript.
__________________


Geändert von In4matiker (03.08.2010 um 13:51 Uhr)
Mit Zitat antworten
  #5 (permalink)  
Alt 03.08.2010, 20:58
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 03.08.2010
Beiträge: 47
Benutzername befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
du musst natürlich i bei jedem Durchgang um 1 hochzählen - dann bleibt die TabellenID immer eindeutig.
das mache ich ja auch hier

Code:
$i++;
$y++;
$c++;
$v++;
$b++;
}
das liegt ja noch innerhalb der while schleife und wird somit jedes mal wieder mitausgeführt.

Dennoch klappt er mir nur die erste ausgabe der while schleife auf und zu, die anderen durch ihren eigenen button nicht.
Mit Zitat antworten
  #6 (permalink)  
Alt 04.08.2010, 08:55
Benutzerbild von In4matiker
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 19.12.2005
Ort: Winterthur (Schweiz)
Beiträge: 158
In4matiker befindet sich auf einem aufstrebenden Ast
Standard

kannst Du dafür mal eine Testseite machen und hochladen damit man das in echt sehen kann?
__________________

Mit Zitat antworten
  #7 (permalink)  
Alt 04.08.2010, 11:33
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 03.08.2010
Beiträge: 47
Benutzername befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
kannst Du dafür mal eine Testseite machen und hochladen damit man das in echt sehen kann?
Klick Mich =)
Mit Zitat antworten
  #8 (permalink)  
Alt 04.08.2010, 12:16
Benutzerbild von uspri
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 04.07.2005
Beiträge: 900
uspri sorgt für eine eindrucksvolle Atmosphäreuspri sorgt für eine eindrucksvolle Atmosphäre
Standard

Fehler: document.getElementById(id) is null
[Break on this error] if(document.getElementById(id).style.display == 'block')
Mit Zitat antworten
  #9 (permalink)  
Alt 04.08.2010, 12:26
Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 03.08.2010
Beiträge: 47
Benutzername befindet sich auf einem aufstrebenden Ast
Standard

und woran liegt das?
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 04.08.2010, 14:05
Benutzerbild von In4matiker
Erfahrener Benutzer
XHTMLforum-Mitglied
 
Registriert seit: 19.12.2005
Ort: Winterthur (Schweiz)
Beiträge: 158
In4matiker befindet sich auf einem aufstrebenden Ast
Standard

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.
__________________

Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ä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


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:07 Uhr.