8

我的表单字段看起来像这样

    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));

感谢您的任何建议

4

4 回答 4

9

您可以像这样设置它们,如果set_value('columnanme')返回false则没有发生表单$_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保存了数据库中的数据

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

只需使用set_values()第二个参数作为默认值。即set_value('name_of_input_field',$data_from_databse_as_default); 如果这不起作用,那么使用我的第一个答案。

于 2013-02-03T00:16:25.367 回答
2

填充下面的代码对我有用。

form_input('cat_name','{YOUR VALUE}',array('id' => 'cat_name', ''placeHolder'' => 'Enter Cat Name')); 
于 2016-08-24T05:05:54.690 回答
0

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

form_input(array('id' => 'cat_name', 'name' => 'cat_name','value'=>set_value('cat_name',$cat_name))); 
于 2016-02-09T09:42:57.997 回答
0

输入有 3 种基本类型。以下是如何重新填充它们中的每一个。

文本输入

$quantity = getValueFromDb();
echo form_input(
    ['name' => 'textInput',],
    set_value('textInput', $quantity, false)
);

用作false第三个参数set_value以避免双重 html 转义,这也是由form_input

下拉菜单

$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;

对于无线电输入,使用循环替换文字。

复选框

复选框可以通过用 和 替换以类似form_radioform_checkbox方式set_radio制作set_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;
}
于 2017-02-08T19:28:20.363 回答