codeigniter:如何根据从数据库中检索的值来检查单选按钮

时间:2013-03-23 22:05:44

标签: php codeigniter

我有一个有两个单选按钮的表单。

当我从我的html表中单击编辑链接时,单选按钮值应根据从db接收的值来检查。

我尝试了以下代码。但我没有根据价值检查单选按钮。它总是检查第一个单选按钮。

请帮我解决这个问题。

查看页面

<label for="level1" ><input type="radio" id="level1" name="menu_type" value="1" <?php echo set_radio('fmenu_type', '1', TRUE); ?> />Do't have sub menu</label>
<label for="level2"  ><input type="radio" id="level2" name="menu_type" value="2" <?php echo set_radio('fmenu_type', '2'); ?> />Having Sub Menu</label>
<?php echo form_submit($submitbtn); 

控制器

 if((int)$mainmenu_id > 0)//this is for edit ,when value id is greater then 0
  {    
       $query = $this->mainmenumodel->get($mainmenu_id);
       $data['fmainmenu_id']['value'] = $query['mainmenu_id'];
       $data['fmenu_name']['value'] = $query['menu_name']; 
       $data['menu_type']  ['value'] = $query['menu_type']; //i am trying to set through this
       $data["query"] = $this->mainmenumodel->fetch_mainmenu_data($config["per_page"], $page);
       $data["links"] = $this->pagination->create_links();

        $data['fmenu_type']['value'] = $query['menu_type']; 

         $this->load->view('admin/setups/mainmenu/index',$data);  
  }

1 个答案:

答案 0 :(得分:1)

您应该根据$data变量的内容更改第三个参数。

所以你会有类似的东西:

<label for="level1" ><input type="radio" id="level1" name="menu_type" value="1" <?php echo set_radio('fmenu_type', '1', $menu_type['value'] == '1'); ?> />Do't have sub menu</label>
<label for="level2"  ><input type="radio" id="level2" name="menu_type" value="2" <?php echo set_radio('fmenu_type', '2', $menu_type['value'] == '2'); ?> />Having Sub Menu</label>
<?php echo form_submit($submitbtn);

您可以在这里查看docs,您会看到第三个参数指定要选择哪个单选按钮,您只需根据数据指定正确的条件。

编辑:我更新了代码,因此很可能它会按预期运行。这个想法如下:如果set_radio为真,(name, value, is_checked)函数可以取3个参数is_checked,然后选择单选按钮,否则不会。例如,此代码将始终放置一个默认选中的单选按钮:

<label for="level1" ><input type="radio" id="level1" name="menu_type" value="1" <?php echo set_radio('fmenu_type', '1', TRUE); ?> />Do't have sub menu</label>

现在,因为您不希望始终选择它,您必须指定一个truefalse条件,以便它可以选择它。这就是我将$menu_type['value']的值与'1'进行比较的原因。由于此代码在视图中,并且您从控制器传递此代码,因此访问传递的数据的方式是使用您传递的$data数组的键,在这种情况下:menu_typelinksquery等......