PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2 separate Tabellen mit gleicher Spaltenbreite?!


M@tes
2009-05-08, 18:06:48
Hallo!
Hab da wiedermal ein kniffliges Problem :rolleyes:
Habe 2 Tabellen, die ich irgendwie miteinander verknüpfen muss.
Ist im Prinzip eine Tabelle mit Spaltentitel und eine mit variablen Inhalt.
Nun könnte ich ja mit JS bzw CSS den Tabellen einen festen Wert zuweisen, aber ich weiss nicht wie breit der Inhalt ist, der kann sich flexibel variieren.
Kann die beiden Tabellen nicht zusammenfügen, weil der Inhalt interaktiv via AJAX generiert wird und ich einen Container brauche :P
Hab schon überlegt eine Schriftart mit fester Breite zu nehmen und dann jeweils die Zeichen zu zählen, aber es gibt nur "courier new" und die ist in sachen Lesbarkeit ein graus..
Hat sich schonmal jemand damit auseinandergesetzt?
Gruss M@tes

Marscel
2009-05-08, 22:21:55
Ich weiß nicht, wie gut es funktioniert, ist nur ne spontane Idee, wie ichs versuchen würde:

Container, (min-width: Npx)
- Tabelle #1, width: 100%;
- Tabelle #2, width: 100%;

In die Tabellen sollte sich nun alles reinstopfen lassen, wenn eine breiter wird, wird der Container breiter, wird die andere breiter (da 100%, vllt. brauchen die noch explizit position: relative).

Tommes
2009-05-08, 22:26:29
Du musst die Breite der Tabelle mit JS auslesen, nachdem der Content via AJAX in die Tabelle geladen wurde und diese Breite dann der anderen zuordnen.

DanMan
2009-05-09, 09:35:45
Ich weiß nicht, wie gut es funktioniert, ist nur ne spontane Idee, wie ichs versuchen würde:

Container, (min-width: Npx)
- Tabelle #1, width: 100%;
- Tabelle #2, width: 100%;

In die Tabellen sollte sich nun alles reinstopfen lassen, wenn eine breiter wird, wird der Container breiter, wird die andere breiter (da 100%, vllt. brauchen die noch explizit position: relative).
Dann stehen sie doch nicht nebeneinander. Die müssten dann 50% Breite haben, und float brauchen sie dann, glaube ich, auch noch.

Ich würd das allerdings ganz anders machen. Entweder die komplette Tabelle im Voraus (PHP, ...) erstellen und dann nur noch einfügen, oder die Infos per JSON parsen, und dann daraus die Tabelle erstellen.

M@tes
2009-05-09, 15:18:34
@Marscel:
So in etwa hab ichs mir auch schon gedacht, allerdings mit einer Tabelle, mit den jeweiligen Spalten und für jede Spalte eine eigene Tabelle.
Beide Tabellen dürfte meines Wissens nach nicht funktionieren, da die Spaltenbreite oft vom Inhalt variabel ist. Die beiden Tabellen haben dann zwar die gleiche Tabellenbreite, aber die Spalten können darin unterscheiden. Tät ich jetzt zumindest meinen?!

@Tommes:
Hab versucht die Tabellenbreite auszulesen, hab aber keinen Rückwert erhalten :(
Weiss jetzt nicht genau wie, aber glaub
document.getElemtByID("Name").width
bzw.
document.getElemtByID("Name").style.width
Wenn ich dem aber einen Wert gegeben habe konnte ich mit JS die Spaltenbreite anpassen, aber über den gleichen Befehl auslesen ging nicht?!?! :confused:

@DanMan:
Ja dsa mit dem Overflow hab ich drine :)
Was ich allerdings nicht verstehe ist, was es fürn Unterschied macht, ab AJAX oder JSON?
Mit PHP hab ich ja wieder statische Seiten, was ja eigentlich nicht Sinn und Zweck der Übung war :)

DanMan
2009-05-09, 16:14:07
@DanMan:
Ja dsa mit dem Overflow hab ich drine :)
Was ich allerdings nicht verstehe ist, was es fürn Unterschied macht, ab AJAX oder JSON?
Mit PHP hab ich ja wieder statische Seiten, was ja eigentlich nicht Sinn und Zweck der Übung war :)
Overflow? Ajax statt JSON? PHP = statisch? Du verstehst mich nicht.
Dann frag ich doch mal: Für was für ein Datenformat hast du dich denn entschieden für deine Tabelle?

Außerdem liest man so nicht die Breite eines Elements aus. Dafür gibts z.B. das offsetWidth Element property. Würd dir sowieso empfehlen eine JS-Library zu verwenden (welche ist wurscht, sind alle ok).

Nebenbei bemerkt: Die Kopfzeilen der Daten in einer, und die eigentlichen Daten in einer anderen Tabelle auszulegen ist semantisch falsch. Da besteht kein Bezug mehr.

Tommes
2009-05-09, 16:49:05
@Marscel:
So in etwa hab ichs mir auch schon gedacht, allerdings mit einer Tabelle, mit den jeweiligen Spalten und für jede Spalte eine eigene Tabelle.
Beide Tabellen dürfte meines Wissens nach nicht funktionieren, da die Spaltenbreite oft vom Inhalt variabel ist. Die beiden Tabellen haben dann zwar die gleiche Tabellenbreite, aber die Spalten können darin unterscheiden. Tät ich jetzt zumindest meinen?!

@Tommes:
Hab versucht die Tabellenbreite auszulesen, hab aber keinen Rückwert erhalten :(
Weiss jetzt nicht genau wie, aber glaub
document.getElemtByID("Name").width
bzw.
document.getElemtByID("Name").style.width
Wenn ich dem aber einen Wert gegeben habe konnte ich mit JS die Spaltenbreite anpassen, aber über den gleichen Befehl auslesen ging nicht?!?! :confused:

@DanMan:
Ja dsa mit dem Overflow hab ich drine :)
Was ich allerdings nicht verstehe ist, was es fürn Unterschied macht, ab AJAX oder JSON?
Mit PHP hab ich ja wieder statische Seiten, was ja eigentlich nicht Sinn und Zweck der Übung war :)

Probier lieber mal offsetWidth statt width :)

M@tes
2009-05-10, 21:13:18
Es geht darum, über ein Eingabefeld nach etwas zu suchen. Dabei soll das Resultat live aufgebaut werden werden.
Das Problem ist, das ich derzeit eine statische nicht mit einer interaktiven Tabelle vereinen kann, da diese einen Container braucht. Ob ein <td> , <div> oder was auch immer. Nun ist es Designtechnisch nötig, das der Tabellenkopf statisch ist, weil zum einen darin die Eingabefelder drinstecken und zum anderen die Tabelle scrollbar, aber der Kopf jederzeit sichtbar sein soll.
Drum Ajax, was ja soweit auch funktioniert, nur die zusammengehörigkeit der beiden Tabellen nicht.
Was JSON bzw PHP da weiterhelfen sollen verstehe ich nicht ganz.. JSON ist ja nichts anderes als AJAX, nur das die Daten anders aufbearbeitet versendet werden - nach meinem Wissenstand.. PHP baut die ganze Seite neu auf, was ich eigentlich vermeiden wollte. Denn das AJAX soll durch den Livestream das suchen nach Datensätzen erleichtern.
Meinst du sowas wie Prototype?
Semantisch hinsichtlich Programmierung mag sein, Designtechnisch notwendig :smile:
Werd das mal mit der Metatabelle bzw. offsetWidth probieren, mal schaun ob ich damit weiterkomme.

DanMan
2009-05-10, 21:45:10
Du hast mir immernoch nicht dein Datenformat genannt.

Aber egal. Du hast scheinbar deinen eigenen Kopf. Demnach viel Glück bei deinem Vorhaben.

M@tes
2009-05-10, 21:57:19
Was meinst du mit Datenformat?

DanMan
2009-05-11, 18:10:35
Was meinst du mit Datenformat?
Ich wollte wissen in welchem Format du dir die Daten für die Tabelle ziehst. HTML? JSON? XML? Oder was ganz anderes?

M@tes
2009-05-11, 21:28:50
HTML und AJAX, sprich XML
/edit: http://www.admin-wissen.de/tutorials/eigene-tutorials/webentwicklung/ajax-tutorial