CodeIgniter - 检查数据库中是否选中了单选按钮

时间:2010-12-02 08:32:32

标签: codeigniter

我在将一些代码放在一起时遇到了一些麻烦......我想要做的是在我现有的代码中添加一些代码来检查数据库中检查的radiobuttons。

我现在的代码从数据库中获取所有角色,使用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;

&GT;

好的,所以我想要做的是检查我发布的代码中的单选按钮,只有当数据库中存在匹配时,为了获得用户检查的值,我使用以下内容。

模型

    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。

有人可以帮我解决这个问题。

干杯,

1 个答案:

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

如果您遵循该代码中的逻辑,您将看到第i个if语句的$ i总是等于0,这使得两个if语句都是多余的。