我有一个有两个单选按钮的表单。
当我从我的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);
}
答案 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>
现在,因为您不希望始终选择它,您必须指定一个true
或false
条件,以便它可以选择它。这就是我将$menu_type['value']
的值与'1'
进行比较的原因。由于此代码在视图中,并且您从控制器传递此代码,因此访问传递的数据的方式是使用您传递的$data
数组的键,在这种情况下:menu_type
,links
,query
等......