7

我的表单和单选按钮有点麻烦,输入文本我这样做:

<?php echo form_input('lastname', set_value('lastname'), 'id=lastname'); ?>
<?php echo form_error('lastname'); ?>

并且当验证运行并且填写的输入字段获得返回的值时......我正在寻找的是一种使用单选按钮执行此操作的方法

<tr><td><?php echo form_label('Gender: ', 'gender'); ?></td><td><?php echo form_label('Male', 'male') . form_radio('gender', 'M', '', 'id=male'); ?><br><?php echo form_label('Female', 'female') . form_radio('gender', 'F', '', 'id=female'); ?></td><td><?php echo form_error('gender'); ?></td></tr>

如您所见,我的两个单选按钮都已经有值 F 或 M .....我如何选择返回的按钮?

4

5 回答 5

10

来自用户指南:https ://www.codeigniter.com/user_guide/helpers/form_helper.html

form_radio()

这个函数在所有方面都与上面的 form_checkbox() 函数相同,只是将它设置为“radio”类型。

所以进一步阅读:

form_checkbox()

允许您生成复选框字段。简单的例子:

echo form_checkbox('newsletter', 'accept', TRUE);

会产生:

<input type="checkbox" name="newsletter" value="accept" checked="checked" />

第三个参数包含一个布尔值 TRUE/FALSE,以确定是否应选中该框。

所以在你的情况下,它可能是这样的:

// Pass boolean value to third param
// Example:
$radio_is_checked = $this->input->post('gender') === 'F';

echo form_radio('gender', 'F', $radio_is_checked, 'id=female');

由于set_radio()只返回一个 string checked="checked",如果你真的想的话,你可以把它楔入第四个参数,但这会产生一些难看的代码:

echo form_radio('gender', 'F', NULL, 'id="female" '.set_radio('gender', 'F'));
于 2012-11-07T00:33:56.537 回答
6

我为此使用三元运算符。假设您的返回值为“M”(男)。例如,我正在制作 $selected 变量,并假设它的值为 M。

<tr>
    <td>
        <?php echo form_label('Gender: ', 'gender'); ?>
    </td>
    <td>
        <?php echo form_label('Male', 'male') . form_radio(array('name' => 'gender', 'value' => 'M', 'checked' => ('M' == $selected) ? TRUE : FALSE, 'id' => 'male')); ?><br>
        <?php echo form_label('Female', 'female') . form_radio(array('name' => 'gender', 'value' => 'F', 'checked' => ('F' == $selected) ? TRUE : FALSE, 'id' => 'female')); ?>
    </td>
    <td>
        <?php echo form_error('gender'); ?>
    </td>
</tr>
于 2015-11-09T06:11:54.340 回答
2

这对我来说效果很好。即使我没有使用 form_helper,这也是更简单的方法。每个人都面临接受性别领域输入的问题:)

               <input id="gender" name="gender" type="radio" class="" <?php if($gender=='0') echo "checked='checked'"; ?> value="0" <?php echo $this->form_validation->set_radio('gender', 0); ?> />
                <label for="gender" class="">Male</label>

                <input id="gender" name="gender" type="radio" class="" <?php if($gender=='1') echo "checked='checked'"; ?> value="1" <?php echo $this->form_validation->set_radio('gender', 1); ?> />
                <label for="gender" class="">Female</label>

                <input id="gender" name="gender" type="radio" class="" <?php if($gender=='2') echo "checked='checked'"; ?> value="2" <?php echo $this->form_validation->set_radio('gender', 2); ?> />
                <label for="gender" class="">Others</label>

我希望它会帮助某人:)

于 2014-09-24T09:30:02.027 回答
1

这肯定有效....

<tr><td><?php echo form_label('Gender: ', 'gender'); ?></td><td><?php echo form_label('Male', 'male') . form_radio(array("name"=>"gender","id"=>"male","value"=>"M", 'checked'=>set_radio('gender', 'M', FALSE))); ?><br><?php echo form_label('Female', 'female') . form_radio(array("name"=>"gender","id"=>"female","value"=>"F", 'checked'=>set_radio('gender', 'F', FALSE))); ?></td><td><?php echo form_error('gender'); ?></td></tr>

像这样写了我的单选按钮

<?php form_radio(array("name"=>"gender","id"=>"female","value"=>"F", 'checked'=>set_radio('gender', 'F', FALSE))); ?>
于 2012-11-07T00:35:07.320 回答
-2
$_fldProyectoMostrar = array(
"id"        => "_FLDPROYDER",
"name"      => "_FLDPROYDER"
);


<?php echo form_radio($_fldProyectoMostrar, "FALSE",    set_radio("_FLDPROYDER", "FALSE", TRUE)); ?>NO

<?php echo form_radio($_fldProyectoMostrar, "TRUE",     set_radio("_FLDPROYDER", "TRUE", FALSE )); ?>SI

Donde el el segundo valor del set radio, debe ser = al string value del form_radio

于 2014-04-20T13:31:22.537 回答