2010-11-27 5 views
0

Verwenden von PHP (bei Bedarf, jquery):Wie füllt man Platzhalter mit einer foreach-Schleife?

Ich habe diese Seite mit 30 Boxen. Es wird nie mehr oder weniger sein.

Auf diesen 30 Boxen werden einige von ihnen mit "kastenspezifischen" Daten gefüllt.

Wie kann ich sagen:

Wenn es 20 Datensätze auf der foreach Schleife trought, dann 20 Kästen Daten enthalten, und der Rest wird mit den Platzhalter bleiben. Wenn es 10 Datensätze auf der Foreach gibt, dann bleiben 20 Boxen bei den Platzhaltern.

Wie kann so etwas erreicht werden? Kann mir jemand ein gutes Beispiel dafür geben?

Vielen Dank, MEM

+0

Vielen Dank. :) Ich werde mir Ihre Lösungen anschauen und sehen, was hier am besten passt. K. Grüße. – MEM

+1

Danke nochmal an alle. Ich habe Prodiglitalson in diesem Fall für eine nette Sache gefunden, denn wenn wir am Ende mehrere HTML-Zeilen haben, fragen wir uns selbst: Was schließt das? Ich wusste nicht, wie ich das machen sollte. Danke euch allen nochmal. Ich werde alle Antworten als nützlich markieren. – MEM

Antwort

1

$data Unter der Annahme, eine numerisch verkeilten Anordnung Ihrer Daten:

<?php for($i = 0; $i < 30; $i++): ?> 

    <?php if(isset($data[$i]): ?> 
    <!-- the html for a box WITH data --> 
    <?php else: ?> 
    <!-- html for an empty placeholder box --> 
    <?php endif; ?> 

<?php endfor;?> 
1

ein Array mit den Bits von Daten, die Sie 30 Platzhalter Füllen Sie haben, fügen Sie, nehmen die ersten 30 Elemente des Arrays, und über jene laufen.

1

Haben Sie Namen für jede Box? Unter der Annahme, dass eine Name/id in Ihren 10 oder 20 Aufzeichnungen, die ich nehme an, dass in einer Reihe sind ...

function OutputBoxes($records, $boxes){ 
     foreach($boxes as $box){ 
       $box->PopulateWithPlaceHolder(); 
     } 

     foreach($records as $record){ 
       $box = GetMatchingBox($record); 
       $box->SetValue($record['valueProperty']); 
     } 

     foreach($boxes as $box){ 
       echo $box->ElementHtml(); 
     } 

} 

Unter der Annahme, dass Sie irgendeine Art von Box-Objekt haben, die wissen, wie man Ausgabe selbst als HTML und stellen Sie den Wert ein, den Sie möchten, der von der Aufzeichnung kommt.

1

machen Sie ein Array mit all Ihren Daten. Führen Sie dann eine For-Schleife (0..30) aus, um Ihre Boxen zu erstellen. Wenn Ihr Box-Daten-Array für jedes Element in Ihrer Schleife ein Element enthält, geben Sie spezifische Daten aus, andernfalls geben Sie Platzhalterdaten aus. So etwas wie dies ...

<?php 
    $box_data = array(
    "data for box 1", 
    "data for box 2", 
    "data for box 3" 
); 
    for($i=0; $i<30; ++$i) { 
    if($i >= count($box_data)) { 
     // output "placeholder box" 
     echo "<div class=\"box placeholder\">Placeholder Box</div>"; 
    } else { 
     // output the box's specific data 
     echo "<div class=\"box non-placeholder\">{$box_data[$i]}</div>"; 
    } 
    } 
Verwandte Themen