我有一个从数据库中提取数据的表单。 代码工作正常,如果它是一个输入框但我无法获得单选按钮的最新$ _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')
}
答案 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)
看起来我能够使用与文本框相同的代码。