2011-11-24 68 views
-1

控制器:我有兩個數組,其中一個包含所有可能的選擇選項,其他選擇的選項應該是「紅色」,我該如何實現?

$params = array(
     'fields' => array('Course.id', 'Course.weekstart'), 
     'conditions' => array(
      'Course.program_id' => $program_id 
     ) 
    );  
    $paramsflagged = array(
     'conditions' => array(
      'Course.course_full' => 1, 
      'Course.program_id' => $program_id   
     ), 
     'fields' => array('Course.id', 'Course.weekstart') 
    ); 
    $flaggedcourses = $this->Course->find('list', $paramsflagged); 
    $courses = $this->Course->find('list', $params); 
    $this->set('courses', $courses); 
    $this->set('flaggedcourses', $flaggedcourses); 

視圖生成用於所有選項的選擇列表(使用陣列療程):

<select> 
    <?php foreach ($courses as $key => $course): ?> 
     <option id="<?php echo $key;?>">   
      <?php echo $course; ?> 
     </option> 
    <?php endforeach;?> 
</select> 

課程陣列=>

Array 
(
    [2836] => 4 16:40:00 
    [2835] => 3 13:20:00 
) 

FlaggedCourses陣列=>

Array 
(
    [2835] => 3 13:20:00 
) 

那麼在該視圖中創建一個新選擇選項數組的最佳方法是什麼?它可以向flaggedcourses數組中的選項添加一個類?

回答

0

使用多維數組

Array 
(
    [2836] => array('value'=> '4 16:40:00', 'flagged' => '') 
    [2835] => array('value'=> '3 13:20:00', 'flagged' => 'selected') 
) 

<select> 
<?php foreach ($courses as $key => $course): ?> 
<option id="'.$key.'" selected="'.$course['flagged'].'">   
    <?php echo $course['value']; ?> 
</option> 
<?php endforeach;?> 
</select> 
0
<select> 
<?php foreach ($courses as $key=>$course): ?> 
    <?php 
     if (array_key_exists($key, $flaggedcourses)) { 
      $class = ' class="flagged"'; 
     } else { 
      $class = ''; 
     } 
    ?> 
    <option id="<?= $key;?>"<?= $class; ?>> 
     <?php echo $course; ?> 
    </option> 
<?php endforeach;?> 
</select> 
+0

語法錯誤...... – ajreal

+0

在哪裏?我只是複製了OP的代碼並添加了我的if語句。我很確定這裏沒有語法錯誤.. –

+0

一旦代碼塊使用替代PHP語法,所有的控制語句也必須使用相同的語法。這意味着'if():... endif;' – ajreal

0

試試這個

foreach ($courses as $key=>$course): 
    if (isset($flaggedcourses[$key])): 
     $color = ' style="color:red"'; 
    else: 
     $color = ''; 
    endif; 

    echo <<<option 
    <option id="{$key}"{$color}>{$course}</option> 
    option; 

endforeach; 
相關問題