2010-12-02 148 views
0

將一些代碼放在一起時有點麻煩......我試圖做的是在代碼中添加一些代碼來檢查單選按鈕在數據庫中進行檢查。CodeIgniter - 檢查數據庫中是否選中單選按鈕

我目前擁有的代碼從數據庫中獲取所有角色,使用foreach語句輸出它們,但也將結果拆分爲2列,這是我現在所擁有的。

<?php 
$i = 0; 
$output = ""; 
foreach($roles as $row){ 
    if($i > 0){ 
     $i = 0; 
    } 
    if($i == 0) { 
     $output .= "<div class='box'>"; 
    } 

    $output .= '<div class="row">'; 
    $output .= ' <input name="_'.$row->key.'" type="radio" id="'.$row->key.'" class="radio" />'; 
    $output .= ' <label for="'.$row->key.'" style="text-transform: lowercase;">'.$row->name.'</label>'; 
    $output .= '</div>'; 

    if($i ==0) { 
     $output .= "</div>"; 
    } 

    $i++; 
} 
if($i != 1) { 
    $output .= "</div>"; 
} 
echo $output; 

?>

好了,我想要做的是檢查代碼的單選按鈕,我貼了,只有當數據庫匹配,所以要得到那名值由用戶檢查,我使用以下內容。

型號

function get_roles_by_id($freelancerid) 
{ 
    $query = $this->db->query('SELECT * FROM '.$this->table_name.' WHERE user_id = "'.$freelancerid.'"'); 
    return $query->result(); 
} 

然後我的控制器看起來像這樣

$data['positions'] = $this->freelancer_roles->get_roles_by_id($freelancer_id); 

由於這是帶回一個數組我不能使用foreach語句來檢查在該位置返回單選按鈕的id陣列。

有人能幫我弄清楚這一點。

乾杯,

+0

什麼$數據包含位置和角色也是對的? – 2010-12-02 08:43:33

回答

0

我想我明白你的問題,看來你是想做一個相當簡單的事情。如果

你應該讓你的模型只返回用戶保存的複選框的名稱數組,格式如下:array(「checkbox1」,「checkbox2」,「checkbox3」)然後在你的輸出 你可以簡單地使用本地的PHP函數in_array()

例如:

$output .= '<div class="row">'; 
    $output .= ' <input name="_'.$row->key.'" type="radio" id="'.$row->key.'" class="radio"'; 
    if(in_array($row->name, $data['positions']) { $output .= ' checked '; } 
    $output . = '/>'; 
    $output .= ' <label for="'.$row->key.'" style="text-transform: lowercase;">'.$row->name.'</label>'; 
    $output .= '</div>'; 

作爲一個側面說明,你有下面的代碼:

if($i > 0){ 
     $i = 0; 
    } 
    if($i == 0) { 
     $output .= "<div class='box'>"; 
    } 

如果您遵循該代碼中的邏輯,您將看到$ if將會在第二個if語句中始終等於0,從而使兩個if語句成爲冗餘。