我的表单字段如下所示
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));
感谢您的任何建议
答案 0 :(得分:8)
您可以这样设置,如果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);
如果这不起作用,请使用我的第一个答案。
答案 1 :(得分:0)
您可以在验证并从数据库中获取值时尝试使用此代码在文本字段中设置值。
form_input(array('id' => 'cat_name', 'name' => 'cat_name','value'=>set_value('cat_name',$cat_name)));
答案 2 :(得分:0)
有三种基本类型的输入。以下是如何重新填充每一个。
$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_radio
替换为form_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;
}