![]() |
| | Themen-Optionen |
| | Nach oben #1 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
Nabend, Ich habe verschiedene Bildinfos in der Datenbank die ich zusammen mit den Bildern in einer HTML Tabelle auflisten will. Alle 5 Spalten wird eine neue Zeile gemacht werden die sich dann wieder füllt. Ich denke Modulo geht schon in die richtige Richtung, aber ich bekomm einfach keine saubere Tabelle zustande... Tst, ich kriegs einfach nicht...Sorry für den komischen Code allerdings befinde ich mich in der View und da siehts etwas anders aus. PHP-Code: |
| | |
| | Nach oben #2 |
| Johannes Müller Registriert seit: 15.09.2005 Ort: Königreich Flieden
Beiträge: 508
|
also zunächst mal, key is auch immer ne zahl? *g* Aber ich vermute das problem kommt einmal daher, dass du in der else-Anweisung immer eine weitere Spalte einfügst, die sollte da nicht hin. Und in der letzten Zeile bleibt ja noch platz übrig, wenn dort nur ein oder zwei bilder drin stehen; also solltest du den rest mit leerzellen ausfüllen (die anzahl bekommst du über einen modulo am ende raus).
__________________ Weißt Bescheid - Scheiß wie weit |
| | |
| | Nach oben #3 |
| Benjamin Steininger Registriert seit: 02.06.2005 Ort: weiher im tiefsten Odenwald
Beiträge: 1.177
|
wie wäre es, das ganze "fließend" ohne tabelle zu machen ? bin damit selbst aktuell etwas am versuchen, einfach nen div den man floatet mit vielleicht fester größe (kommt auf deine bilder an) und durch das floaten wandern die halt in reihen, wenn dem ganzen mehr platz zur Verfügung steht sind es weniger reihen und ansonsten halt mehr. Ansonsten ist dein problem dass du das array mit "dummys" füllen musst um auf eine sauber durch die anzahl der elemente pro reihe teilbare menge zu kommen, damit eine reihe nicht auf einmal nur noch ein <td></td> hat sondern selbst wenn nur 1 bild drin ist, auch die weiteren 4 <td></td>. entweder auf for-schleifen umsteigen und mit ner erkennung und break arbeiten oder weiter mit foreach und dann halt das array mit einer passenden Menge Daten füllen.. |
| | |
| | Nach oben #4 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
So hab im Netz nen Schnipsel aufgabelt und das sieht soweit ganz gut aus. @Straight Wie geschrieben muss ich noch die leeren Zeilen ergänzen allerdings steig ich grad nicht durch wie der modulo das hinkriegen soll PHP-Code: |
| | |
| | Nach oben #5 |
| Johannes Müller Registriert seit: 15.09.2005 Ort: Königreich Flieden
Beiträge: 508
| PHP-Code:
__________________ Weißt Bescheid - Scheiß wie weit |
| | |
| | Nach oben #6 |
| Bastian Fenske Registriert seit: 04.01.2006 Ort: Kassel
Beiträge: 825
|
Hast noch vergessen, beim lezten Bild den Sack wieder zuzumachen, also colspan anzugeben und </tr>. Letztes Bild hat $key === count($this->images) - 1, was du einmal vor der Schleife ausrechnen solltest und colspan ist $iNumCols + 1 - ($key % $iNumCols), glaub ich. Hilfreich zum debuggen ist es, den Quellcode (HTML-Ausgabe) einzurücken. Basti Geändert von Basti (27.11.2007 um 14:09 Uhr). |
| | |
| | Nach oben #7 |
| Patrick Freitag Registriert seit: 17.08.2005
Beiträge: 118
|
Wie Benjamin schon geschrieben hat, wär es auch ne interessantere und wahrscheinlich sogar einfachere Lösung eine gefloatete Liste zu erstellen. Der gibst du einfach deine gewünschte Breite (wenn du 5 Bilder hast musst du halt ausrechnen wie die entgültige Breite ist). Wird die Breite überschritten, wandert das in eine neue Zeile. Und basiert nur auf CSS&HTML.
|
| | |
| | Nach oben #8 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
Die Thumbnails haben eine unterschiedliche Breite und Höhe. Unter jedem Thumb soll noch eine Checkbox sein und vielleicht noch 1-2 Icons zum klicken. Die Dinge unter jedem Thumb sollen dabei in der ganzen Zeile auf der gleichen höhe sein und das ist mit floatenden DIVs nicht ganz einfach. Oder geht das mit verschachtelten Listen einfacher? etwa so: HTML Code:
Ich würd ja lieber PEAR Datagrid einsetzen. Aber ich möchte das nicht so mit ZF verwurschteln. Geändert von Ben (27.11.2007 um 12:17 Uhr). |
| | |
| | Nach oben #10 |
| Daniel Golowin Registriert seit: 17.11.2005 Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
|
@ex³ Dazu müsstest du einfach einen DIV-Container mit fester Breite und Höhe nehmen. Darin kannst du dann das Thumbnail positionieren (z.B. zentriert) und die weiteren Inhalte wie du möchtest. Allerdings je nach dem wie das Design der Seite realisiert wurde, musst du mit floaten etwas experimentieren bevor du da eine in allen Browsern einheitliche Darstellung erzeugst. Hab das schon selbst realisiert gehabt. Auf Tabellen bist du hier auf jeden Fall nicht angewiesen. EDIT: Mit Listen-Elementen würde es auch gehen. Einfach eine ungrade Liste nehmen (<ul> ... </ul>) und darin pro Thumbnail ein Listen-Element (<li><img ... /></li>) erzeugen. Geändert von dago (27.11.2007 um 17:51 Uhr). |
| | |
| | Nach oben #11 |
| Erfahrener Benutzer Registriert seit: 30.10.2005
Beiträge: 279
|
Da käme schon das nächste prob. wenn meine thumbs nicht alle die gleich größe haben sondern ungefähr relativ verkleinert wurden dann würde ich sie gern auch VERTIKAL zentrieren und das ist und das ist auch nicht so einfach. Das ganze ist für ein Admincenter da reicht vorerst der Tabellenkram. Übrigens. Osthofen...das liegt doch hinter Worms. |
| | |
| | Nach oben #13 |
| Daniel Golowin Registriert seit: 17.11.2005 Ort: Rheinland-Pfalz, Osthofen
Beiträge: 122
|
@ex³ Hast schon recht. Kenne außer ein paar Tricks auch keine saubere Lösung. Jup, genau. @Basti Weiß selbst nicht wie ich da auf "ungerade" komme. EDIT: @ex³ Eben fällt mir doch was ein. Eigentlich müsstest du ja die Breite und die Höhe des Thubnail kennen. Du müsstest hier halt die Thumbnails nicht global in der CSS Datei, sondern direkt jedes Thumbnail einzeln positionieren. So in etwa könnte es aussehen: Code: <div class="ThumbBox">
<img style="position:absolute; top:50%; left; 50%; width:100px; height:80px; margin: -40px 0 0 -50px;" src="..." alt="..." />
</div>
Geändert von dago (28.11.2007 um 10:51 Uhr). |
| | |
![]() |
| Lesezeichen |
| Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
| Themen-Optionen | |
| |