2012-09-20 69 views
0

我怎麼會去GETT我下面的代碼,出在.row元素PHP打開和關閉一個div每5次迭代

 <?php 
     $count = 0; 

     foreach($imp_photos['data'] as $photo) 
     { 
      $count = ($count + 1)%5; 
      if ($count == 0) { 

     ?> 
       <div class="choice"> 
        <input type="checkbox" name="photos[]" value="<?php echo $photo->id; ?>" class="fb_checkbox"><img src="<?php echo $photo->picture; ?>" class="clear" /> 
       </div> 

     <?php 
     } 
     else 
     { 
     ?> 
      <div class="choice"> 
       <input type="checkbox" name="photos[]" value="<?php echo $photo->id; ?>" class="fb_checkbox"><img src="<?php echo $photo->picture; ?>" class="clear" /> 
      </div> 

     <?php 
     } 
     } 

     ?> 

我知道我必須做一些與% 5個.choice元素,但我不能讓它工作。

+1

爲什麼不使用''

顯示錶格數據? – Josh

+1

我仍然必須打開關閉一個'

'每5'​​'所以我的問題仍然存在 – Udders

回答

0

未經檢驗的,但應該做的伎倆

<?php 
    //Prepare the data 
    $rows = array(); 
    $row = array(); 
    $rowSize = 5; 
    foreach($imp_photos["data"] AS $photo) { 
     $choice = array(
      "id" => $photo->id, 
      "picture" => $photo->picture; 
     ); 
     $row[] = $choice; 

     if(sizeof($row) == $rowSize) { 
      $rows[] = $row; 
      $row = array(); 
     } 
    } 
?> 

<!-- display the data --> 
<?php foreach($rows AS $row) { ?> 
    <div class="row"> 
     <?php foreach($row AS $choice) { ?> 
      <input type="checkbox" name="photos[]" value="<?php echo $choice["id"]; ?>" class="fb_checkbox"><img src="<?php echo $choice["picture"]; ?>" class="clear" /> 
     <?php } //foreach row ?> 
    </div> 
<?php } //foreach $rows ?> 
+0

雖然我必須說我不確定我是否理解這個問題。儘管如此,首先準備數據然後單獨輸出它始終是一個好主意,因爲它將任務分開(生成數據和顯示數據)並使調試更容易。 – EmilioMg

2

你計算計數的方式是錯誤的。它變成1 - > .20 - > 1.20 - > .24 ...這是一個更直接的方式。

$count++; 
if($count%5 == 0) { /* Do your div stuff here */ } 
+2

這就是所謂[模數運算符](http://php.net/manual/en/language.operators。 arithmetic.php)。這非常值得了解! – Xeoncross