2010-01-09 56 views
4

我有一种从数据库中提取数据的表单。 如果代码是输入框,但代码工作正常,但无法获取单选按钮的最新$ _POST数据。在验证失败时重新生成单选按钮

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

<?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') 
} 

回答

-3

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

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'); ?> /> 

第一个参数是无线电集的名称,第二个是当前广播的价值,第三个是一个选项,默认情况下,如果没有数据和填充字段。

+0

这是正确的答案。 – stormwild 2012-09-11 12:47:05

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

谢谢,这有助于:) – 2012-11-25 16:12:11

+0

作为一个方面说明,如果所有你想要的都是'set_value()','set_radio()'等的好处,你也可以用“可选”跟踪字段..我认为'null'值也可以工作,但关键字“可选”更好。 – farinspace 2014-07-03 00:35:46

2

看几个实例代码后,我注意到set_radio功能已在form_radio函数参数的值是。由于回声中不能有回声,因此我通过在value参数中放入一个空字符串,然后将set_radio函数附加到它来创建一个“黑客”。这里是我的例子:

echo form_radio('gender', 'M', ''.set_radio('gender', 'M'), $js)."Male "; 
echo form_radio('gender', 'F', ''.set_radio('gender', 'F'), $js)."Female ";