在验证失败时重新填充单选按钮

luc*_*axi 4 codeigniter

我有一个从数据库中提取数据的表单.代码工作正常,如果它是一个输入框但我无法获得单选按钮的最新$ _POST数据.

这适用于输入文本框.我在第一次加载时从DB中获取默认值,并且我可以从用户获得新输入(如果有的话)在失败的验证时修改输入框.

<?php echo form_input('email',set_value('email', $email)); ?>
Run Code Online (Sandbox Code Playgroud)

这是我的一个单选按钮的代码.它在我从数据库中提取数据时有效,但如果表单由于验证失败而刷新,我不知道如何显示用户选择的内容.

<input type="radio" name="gender" value="male" <?php if($gender == "male") echo "checked";  ?> />Male
Run Code Online (Sandbox Code Playgroud)

我玩set_radio但我遇到了同样的问题.这适用于初始加载,但验证失败怎么办?我尝试在第二个参数中抛出"set_radio",但这也不起作用.

if($gender == "male") {
    echo form_radio('gender', 'male',TRUE)
} else {
   echo form_radio('gender', 'male')
}
Run Code Online (Sandbox Code Playgroud)

cwe*_*ton 15

似乎有一个bug.除非您为单选按钮包含验证规则,否则它们不会在回发时重新填充.

您可以包含这样的规则.

 $this->form_validation->set_rules('active', 'active', 'required');
Run Code Online (Sandbox Code Playgroud)

如果你有..

<div id="active-container">

   <input type="radio" name="active" id="lesson-active" value="1" <?php echo set_radio('active', '1', TRUE); ?> />
   <label for="lesson-active">Active</label>

   <input type="radio" name="active" id="lesson-deactivated" value="2" <?php echo set_radio('active', '2'); ?> />
   <label for="lesson-deactivated">Deactivated</label>

</div>
Run Code Online (Sandbox Code Playgroud)