Php Codeigniter设置_值()并填充表单值

Php Codeigniter设置_值()并填充表单值,php,forms,codeigniter,retain,Php,Forms,Codeigniter,Retain,我的表单字段如下所示 echo form_label('Quantity', 'quantity'); echo form_input('quantity', $quantityx); 我修改了它以保留表单值 echo form_label('Quantity', 'quantity'); echo form_input('quantity', $this->input->post('quantity')); 我在代码隐藏中设置了上面的$quant

我的表单字段如下所示

    echo form_label('Quantity', 'quantity');
    echo form_input('quantity', $quantityx);
我修改了它以保留表单值

    echo form_label('Quantity', 'quantity');
    echo form_input('quantity', $this->input->post('quantity'));
我在代码隐藏中设置了上面的$quantityx,以便从数据库中填充一个值,以便用户可以编辑一行

如何保留用于验证的值,同时从数据库中填充变量

我试了一口井

    echo form_label('Quantity', 'quantity');
    echo form_input('quantity', set_value($quantityx));

感谢您的建议

您可以这样设置它们,如果
设置值('columnanme')
返回
false
,那么表单
$\u POST
不会发生,因此它将从数据库示例中获取数据
$profile->firstname

$firstname = set_value('firstname') == false ? $profile->firstname : set_value('firstname');
$lastname = set_value('lastname') == false ? $profile->lastname : set_value('lastname');
像这样使用它:

echo form_label('Firstname', 'fname');
echo form_input('firstname', $firstname);
echo form_label('Firstname', 'lnamey');
echo form_input('firstname', $lastname);
在您的情况下,您可以:

$quantity = set_value('Quantity') == false ? $quantityx : set_value('Quantity');
在你的表格上:

echo form_label('Quantity', 'quantity');
    echo form_input('quantity', $quantity);
假设
$quantityx
保存数据库中的数据

编辑
================================================================

只需使用第二个参数作为默认值。i、 e
set_值('name_of_input_field',$data_from_database_作为_默认值)

如果这不起作用,请使用我的第一个答案。

在验证并从数据库中获取值时,您可以尝试使用此代码在文本字段中设置值

form_input(array('id' => 'cat_name', 'name' => 'cat_name','value'=>set_value('cat_name',$cat_name))); 

要填充下面的值,代码对我有用

form_input('cat_name','{YOUR VALUE}',array('id' => 'cat_name', ''placeHolder'' => 'Enter Cat Name')); 

有3种基本类型的输入。下面是如何重新填充它们

文本输入 使用
false
作为
set\u value
的第三个参数,以避免双重html转义,这也是通过
form\u input
完成的

下拉菜单 单选按钮 对于无线电输入,使用循环替换文字

复选框 通过将
form\u checkbox
替换为
form\u radio
,将
set\u radio
替换为
set\u checkbox
,可以以类似的方式创建复选框

$values = [ 5 => 'Five', 10 => 'Ten', 15 => 'Fifteen',];
$selectedValues = [5, 15];
foreach ($values as $value => $label) {
    echo form_checkbox(
        ['name' => 'formCheckbox[]'],
        $value,
        set_checkbox(
            'formCheckbox[]', 
            $value,
            in_array($value, $selectedValues, true)
        )
    ), $label;
}

相反,我更喜欢只使用set_value中的第二个参数,而不是进行不必要的if-else检查。例如,
echo表单输入('quantity',设置值('quantity',$profile->firstname))
。第二个参数是回退值。
$quantity = getValueFromDb();
$quantities = getQuantitiesList();
echo form_dropdown(
    [ 'name' => 'formDropdown'],
    [''=>'-- Select Quantity --'] + $quantities,
    set_value('formDropdown', $quantity, false)
);  
$quantity = getValueFromDb();
echo form_radio(
    ['name'=>'formRadio'],
    5,
    set_radio('formRadio', 5, $quantity === 5)
), 5;
echo form_radio(
    ['name'=>'formRadio'],
    10,
    set_radio('formRadio', 10, $quantity === 10)
), 10;
$values = [ 5 => 'Five', 10 => 'Ten', 15 => 'Fifteen',];
$selectedValues = [5, 15];
foreach ($values as $value => $label) {
    echo form_checkbox(
        ['name' => 'formCheckbox[]'],
        $value,
        set_checkbox(
            'formCheckbox[]', 
            $value,
            in_array($value, $selectedValues, true)
        )
    ), $label;
}