笨select_value在form_dropdown(CodeIgniter select_val

2019-07-18 11:59发布

我有一个下拉字段在我的形式,当我点击提交的形式经过验证,如果错误发生,返回所有的值。 这项工作预计于我的下拉MEU,我在下拉列表中SET_VALUE但它不工作:(

这里是我的代码

<?php echo form_dropdown('gender', $gender, set_value('gender')); ?>

我在做什么错误或丢失?

Answer 1:

这样做效果很好:

<?php
$selected = ($this->input->post('gender')) ? $this->input->post('gender') : 'M';  
$gender = array("M" => "Male", "F" => "Female");
echo form_dropdown('gender', $gender, $selected);
?>


Answer 2:

卸下set_value('gender')

如:

<?php echo form_dropdown('gender', $gender, 'male'); ?>

由于忠是提你可以传递一个数组作为多选第3个参数。



Answer 3:

如果你想使用SET_VALUE特定领域,你需要有该字段的验证规则。 没有验证规则使得SET_VALUE返回NULL(或空字符串我没有检查它)

在我的控制,我添加

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

之前我form_validation->运行线。 然后,我可以用你的语法:

<?php echo form_dropdown('gender', $gender, set_value('gender')); ?>

我发现SET_VALUE()的工作,不set_select()。 记住,你可以添加第二个参数来SET_VALUE有如果表单尚未验证其用于男性或女性的默认。 我提取我的后台数据库现有的值,并通过这这样:

<?php echo form_dropdown('gender', $gender, set_value('gender',$persons_gender_from_db)); ?>

还要注意的是设定值返回的选项(“M”或“F”),而不是所显示的值(“男”或“女”)的阵列的索引。 对于包含两种性别,我使用含有选项的数据库表的主键更多的选择列表,以确保其唯一性。

虽然我不知道当我将首先被要求“其他”增加的性别选项列表....



Answer 4:

随着form_dropdown ,你必须使用set_select代替set_value

CodeIgniter的文件

如果你想设置的默认值form_dropdown ,通过其中包含的默认值作为第三个参数数组form_dropdown功能。



Answer 5:

CI有set_checkbox()set_radio()您需要使用代替的set_value()

set_checkboxset_radio有一些问题,并且似乎没有能够处理被设计为同时处理创建和更新表单形式。

这是该修补程序。 你可以把这个代码在助手或延长form_validation类。

<?php echo form_dropdown('gender', $gender, set_it('gender','M',$person)); ?>

<?php
/*   $field is the field you're setting
 *   $value is the "selected" value from the previous form post
 *   $defaults is an object containing defaults in case the form is being used to create a new record. It could be filled with null values, or actual default values if you need that. 
 */
function set_it($field, $value, $defaults = null)
{
    // first, check to see if the form element was POSTed
    if (isset($_POST[$field]))
    {
        // does it match the value we provided?
        if ($_POST[$field] == $value)
        {
            // yes, so set the checkbox
            echo "checked='checked'"; // valid for both checkboxes and radio buttons
        }
    }
    // There was no POST, so check to see if the provided defaults contains our field
    elseif ( ! is_null($defaults) && isset($defaults->$field))
    {
        // does it match the value we provided?
        if ($defaults->$field == $value)
        {
            // yes, so set the checkbox
            echo "checked='checked'"; // valid for both checkboxes and radio buttons
        }
    }
}
?>


Answer 6:

也许你不验证表单。

用这个:

$this-> form_validation-> set_rules ('gender', 'Label', 'xss_clean');

使用方法:

<? php echo form_dropdown ('gender', $ gender, set_value ('gender'));?>

如果不是,请使用表单验证,操作步骤如下:

<? php echo form_dropdown ('gender', $ gender, $ this-> input-> post ('gender'));?>


文章来源: CodeIgniter select_value in form_dropdown