2014-10-10 50 views
0

如果數據顯示在我的數據庫中,我想在我的複選框上輸出checked屬性。測試數據庫結果以將複選框設置爲選中狀態

我試着做in_array()但它並沒有因爲價值觀的工作(見資料庫)

我不知道我應該如何輸出他們很好

PHP代碼:

$general_list = ""; 
if($row['f_general'] == 'Bar, '){ 
    $general_list .= "<label class=\"bg-danger\"><input type=\"radio\" name=\"general[]\" value=\"Bar, \" checked=\"checked\"/>Bar</label>"; 
}else{ 
    $general_list .= "<label><input type=\"radio\" name=\"general[]\" value=\"Bar, \"/>Bar,</label>"; 
} 
if($row['f_general'] == 'Restaurant,'){ 
    $general_list .= "<label><input type=\"radio\" name=\"general[]\" value=\"Restaurant, \" checked=\"checked\"/>Restaurant,</label>"; 
}else{ 
    $general_list .= "<label><input type=\"radio\" name=\"general[]\" value=\"Restaurant, \"/>Restaurant,</label>"; 
} 
if($row['f_general'] == 'Coffee Shop,'){ 
    $general_list .= "<label><input type=\"radio\" name=\"general[]\" value=\"Coffee Shop, \" checked=\"checked\"/>Coffee Shop,</label>"; 
}else{ 
    $general_list .= "<label><input type=\"radio\" name=\"general[]\" value=\"Coffee Shop, \"/>Coffee Shop,</label>"; 
} 

我的數據庫值是這樣保存的:

Bar, Restaurant, Coffee Shop, Concierge, 

HTML CO DE:

<label><input type="checkbox" name="general[]" value="Bar, "/>Bar,</label> 
<label><input type="checkbox" name="general[]" value="Restaurant, "/>Restaurant,</label> 
<label><input type="checkbox" name="general[]" value="Coffee Shop, "/>Coffee Shop,</label> 
<label><input type="checkbox" name="general[]" value="Concierge, "/>Concierge,</label> 
<label><input type="checkbox" name="general[]" value="Business Center, "/>Business Center,</label> 
<label><input type="checkbox" name="general[]" value="Salon, "/>Salon,</label> 

回答

0

目前尚不清楚如何將數據來自數據庫,但如果您將它作爲逗號分隔的字符串存儲:請勿。有更好的方法來做到這一點 - 用獨立的數據庫行的每個$row['f_general']實體,即

f_general 
Bar 
Restaurant 
Coffee Shop 
(etc.) 

然後,您可以做一個查詢,並把在外地f_general所有項目到一個數組,而不是必須解析逗號分隔的字符串。

既然你有字符串,解析它來創建磁盤陣列:

$db_row = explode(", ", $row['f_general']); 

然後,可以使你的代碼有很多更緊湊,更容易做來維持以下幾點:

# set up an array with all the checkboxes in it: 
$items = array('Bar', 'Restaurant', 'Coffee Shop', 'Concierge', 'Business Center', 'Salon'); 

$general_list = ''; 

# go through each item in the array 
foreach ($items as $i) { 
    # see if that item is in the data from the database 
    if (in_array($i, $db_row)) { 
     $general_list .= '<label class="bg-danger"><input type="radio" name="general[]" value="' 
     . $i . '" checked="checked" />' . $i . '</label>'; 
    } 
    else { 
     $general_list .= '<label><input type="radio" name="general[]" value="' 
     . $i . '" />' . $i . '</label>'; 
    } 
} 
+1

感謝關於應該如何完成的想法。終於明白了 – Jonathan 2014-10-10 09:29:59

0

不要value.You加逗號可以使用破滅存儲值像

implode(",",$_POST[general]); 

和爆炸顯示:

explode(",",$_POST[general]); //it will return array 
相關問題