Olaf: tabellenausgabe an fensterbreite anpassen

Hallo,

habe weder im Archiv noch unter google was gefunden. Wenn das Thema hier schon behandelt wurde - dann entschuldigt bitte.

Frage / Problemstellung:
Ich moechte Daten in einer Tabelle ausgeben, weiss aber zum Zeitpunkt der Programmierung nicht, wieviele Spalten ausgegeben werden.
Zum Zeitpunkt der Ausgabe schon.

Wenn ich das Ganze ueber eine einfache while-schleife laufen lassen, dann rutscht um Moment die Tabelle rechts aus dem Fenster (bei z.B. 20 Spalten). Wenn's dem browser zu bunt wird, dann bricht er hinter (rechts) sogar die Zeilen um und zerstueckelt die Ausgabe.

Frage ist nun:
a) wie kann ich erreichen (auch wenn das richtiger programmcode werden sollte), dass die Tabellenausgabe am Bildrand aufhoert und in der naechsten Zeile weitergeht?
b) macht das Sinn oder wuerdet Ihr empfehlen, die Ausgabe nach rechts weiterlaufen zu lassen?
c) habt Ihr Designvorschlaege?
d) empfiehlt Ihr vielleicht, den Benutzer nicht mehr als 10 Spalten auswaehlen zu lassen?

Ich habe keine Idee. Habt Ihr eine?

Herzliche Gruesse,
Olaf.

  1. Hi Olaf,

    ich hab zwar keine Ahnung, in welcher Sprache Du das realisierst, aber ich würde vor der Ausgabe einfach (in deiner Programmiersprache) 100 (Prozent Fensterbreite) durch die Anzahl der Spalten teilen. Dann hast Du die prozentuale Breite für eine Spalte und Du kannst das dann in XHTML zuweisen, z.B. mit PHP:

    $colWidth = 100/$totalCols; // z.B. 100 % / 5 Spalten = 20 %

    echo '<td style="width:'.$colWidth.'%">Inhalt Spalte 1</td>";

    Die Spalten sind dann natürlich alle gleich breit. Weiß nicht, wie schick das ist!?

    Gruß, Josef

    1. geht auch "td-weise" wenn "table" zugewiesen ist:
      (padding-left war noch von meiner table... - ist also hier unwichtig)

      echo "<table borderwidth='1' width='100%'>";

      echo "<TR>";

      echo "<TD WIDTH='10%' padding-left='5px'>bla   </TD>";
      echo "<TD WIDTH='20%' padding-left='5px'>bla   </TD>";
      echo "<TD WIDTH='15%' padding-left='5px'>bla   </TD>";
      echo "<TD WIDTH='15%' padding-left='5px'>bla   </TD>";
      echo "<TD WIDTH='10%' padding-left='5px'>bla   </TD>";
      echo "<TD WIDTH='13%' padding-left='5px'>bla   </TD>";
      echo "<TD WIDTH='17%' padding-left='5px'>bla   </TD>";

      -> müssten zusammen 100% sein - rechne mal nach

      ob´s fnktioniert? - glaube schon!

      viel glück

      gruß Thorsten

  2. hi,
    gue frage,
    20 spalten hören sich viel an, oder haste nen 22" Widescreen? :-)

    du kannst die gesamte tabelle an das Fenster über TR WIDTH anpassen.

    bei php im code wäre es dann :

    echo "<TABLE>";
    echo "<TR WIDTH='100%'>";
    echo "<TD><irgendein text...></TD>";
    echo "</TR>";
    echo "</TABLE>";

    ich hoffe ich konnte dir ansatzweise damit weiterhelfen.

    gruß Thorsten

    1. gruß Thorsten

      Hallo Thorsten,
      Danke.

      hat nicht funkt.
      ich habe
      <table>
      <TR WIDTH='100%'>
      <td>bla</td><td>blub</td>
      <td>bla</td><td>blub</td>
      <td>bla</td><td>blub</td>
      <td>bla</td><td>blub</td>
      xmal
      </tr>
      Bereich geht weiterhin nach rechts raus.

      Der browser ignoriert mich. Unerhoert :-)

      Eine Idee warum?
      fg,
      Olaf.