重新填充CodeIgniter中的选择表单字段

dte*_*lus 2 forms validation select codeigniter

我想在验证后重新填充(即重新填充)从选择表单字段发布的值.我知道使用set_select()函数提出的codeigniter用户指南,但是他们的指南中的示例假设您已经硬编码(在HTML中)'select'表单元素的值数组.在我的情况下,我使用了Form Helper,我的select字段值从数组()中拉出,如下所示:


$allstates = array('blah','blah2','blah3','blah4','blah5');
echo form_label('Select State Affiliate', 'state'); 
echo form_dropdown('state', $allstates);
Run Code Online (Sandbox Code Playgroud)

毋庸置疑,$ allstates数组是动态的,随着时间的推移而变化.那么我如何进行编码以便可以使用用户选择的值重新填充我的选择字段?

ste*_*tef 5

您可以设置应通过form_dropdown的第三个参数预先选择的值.用户在上一步中选择的值在$ this-> input-> post('state')中.所以你会用:

echo form_dropdown('state', $allstates, $this->input->post('state'));
Run Code Online (Sandbox Code Playgroud)

来自用户指南:

第一个参数将包含字段的名称,第二个参数将包含选项的关联数组,第三个参数将包含您希望选择的值

$options = array(
              'small'  => 'Small Shirt',
              'med'    => 'Medium Shirt',
              'large'   => 'Large Shirt',
              'xlarge' => 'Extra Large Shirt',
            );

$shirts_on_sale = array('small', 'large');

echo form_dropdown('shirts', $options, 'large');

// Would produce:

<select name="shirts">
<option value="small">Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large" selected="selected">Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select>
Run Code Online (Sandbox Code Playgroud)