• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Multi Column Problem

Tronjer

Senior HTML'ler
Das ist eine Aufgabe, bei der ich noch nicht weiß, mit welcher Technik ich sie am besten lösen kann. Deshalb stell ich es mal hier rein.

Die Aufgabe:
Eine foreach-Schleife liefert eine Reihe von Einträgen zurück, deren Anzahl je nach Kategorie zwischen fünf und vierzig variieren kann. Diese sollen nun in Form eines vierspaltigen Layouts ausgegeben werden, bei denen jeweils zehn Einträge in einer Spalte stehen.

Das Problem:
Die Seite muss im IE7 funktionieren und jQuery steht lediglich in der Version 1.2.6 zur Verfügung. Der Code soll fehlerfrei sein, performant, und möglichst ohne Browserhacks auskommen.

Nun gibt es in CSS3 zwar das multi-column-layout, aber mir ist kein Fallback für den IE bekannt. Ich habe auch kein passendes Plugin gefunden, das mit diesem Uralt-jQuery funktioniert, und meine Ansätze mit PHP und JS sind bisher auch noch nicht ausgegoren.

Fällt jemanden vielleicht ein Ansatz ein, der mich in die richtige Richtung schubst?
 
Kannst du die PHP-Ausgabe beinflussen?

Wenn ja, dann mach doch einfach ein Layout mit 4 gefloateten Containern und lass einen Zähler in der Schleife mitlaufen, der nach 10 Items einen neuen Container aufmacht.

Das wärs doch schon. Oder hab ich die Aufgabe irgendwie falsch verstanden?
 
Darüber habe ich auch schon nachgedacht.

Du meinst, wenn der Index der foreach-Schleife bei 0, 9, 19, 29 liegt, einen Div-Container erzeugen? Bleibt aber immer noch das Problem der unterschiedlichen Anzahl von Einträgen pro Kategorie. Heißt, ich müsste die Schleife irgendwie noch mit einem count() verbinden, und das hat heute kurz vor Feierabend nicht funktioniert.
 
Ja, ich hätte jetzt vor der Schleife den ersten Container aufgemacht, und wenn der Zähler 10 erreicht, das <div> geschlossen und ein neues aufgemacht, was aber im Grunde auf das Selbe hinausläuft.

Bleibt aber immer noch das Problem der unterschiedlichen Anzahl von Einträgen pro Kategorie.

Das verstehe ich jetzt nicht. Sollen immer 10 Items in einer Spalte, oder die Items gleichmäßig über 4 Spalten verteilt werden, wobei max. 10 pro Spalte?
 
10 Items in eine Spalte war schon richtig. Ab dem 11. wird ein neues Div erstellt. Ich überlege nur gerade, wie ich die Abfrage erstelle:

PHP:
$ausgabe = [0 => 'foo', 1=> 'bar',...]

if($key = 0 || $key = 9 || $key = 19 || $key = 29) {//tu was }

gefällt mir nicht.

Hmm, oder

PHP:
if (array_key_exists($key, $ausgabe[$key])) {
    // tu was;
}

Ich habe in den letzten Monaten wenig mit PHP gemacht.
 
Zuletzt bearbeitet:
Zurück
Oben