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

时间:2010-01-09 17:21:11

标签: codeigniter

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

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

<?php echo form_input('email',set_value('email', $email)); ?>

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

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

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

if($gender == "male") {
    echo form_radio('gender', 'male',TRUE)
} else {
   echo form_radio('gender', 'male')
}

4 个答案:

答案 0 :(得分:15)

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

您可以添加这样的规则。

 $this->form_validation->set_rules('active', 'active', 'required');

如果你有......

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

答案 1 :(得分:3)

来自CodeIgniter UserGuide。

<input type="radio" name="myradio" value="1" <?php echo set_radio('myradio', '1', TRUE); ?> />

<input type="radio" name="myradio" value="2" <?php echo set_radio('myradio', '2'); ?> />

第一个参数是无线电设备的名称,第二个参数是当前无线电的值,如果没有数据填充该字段,则第三个参数是默认选项。

答案 2 :(得分:2)

在查看了几个代码示例之后,我注意到set_radio函数在form_radio函数的value参数中是HAD TO BE。由于你不能在回声中产生回声,我创造了一个&#34; hack&#34;通过在value参数中放入一个空字符串,然后将set_radio函数附加到它。这是我的例子:

    protected override void OnFormClosing(FormClosingEventArgs e)
    {
        //It appears it needs everything here to be turned off...amazing.
        updateStuff.Elapsed -= updateStuff_Elapsed;
        updateStuff.AutoReset = false;
        updateStuff.Stop();
        updateStuff.Dispose();
        base.OnFormClosing(e);
    }

答案 3 :(得分:-3)

看起来我能够使用与文本框相同的代码。