测试数据库结果以将复选框设置为已选中

时间:2014-10-10 08:43:04

标签: php html mysql checkbox

如果数据出现在我的数据库中,我想在复选框上输出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 CODE:

<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>

2 个答案:

答案 0 :(得分:0)

不要添加带有值的逗号。您可以使用implode存储值,如

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

并爆炸显示:

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

答案 1 :(得分: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>';
    }
}