0

我有一个复杂的重新填充系统,但它很麻烦。

我有一个出生国家的下拉菜单,当用户提交表单时,它会被扔进数据库。如果有什么东西,那么下拉菜单会重新填充数据库中的任何内容。

我像这样从数据库中获取值:

$birthplacecountry = (!set_select('birthplacecountry') && $birth_citizenship) ? $birth_citizenship[0]['birthplacecountry'] : (set_select('birthplacecountry') ? set_select('birthplacecountry') : '');

这很好用,因为我的选项看起来像这样:

<option value="Afganistan" <?php if ($birthplacecountry == 'Afganistan') echo 'selected="selected"';?>>Afghanistan</option>
<option value="Albania" <?php if ($birthplacecountry == 'Albania') echo 'selected="selected"';?>>Albania</option>
<option value="Algeria" <?php if ($birthplacecountry == 'Algeria') echo 'selected="selected"';?>>Algeria</option>
<option value="American Samoa" <?php if ($birthplacecountry == 'American Samoa') echo 'selected="selected"';?>>American Samoa</option>

但是,不得不手动将 $birthplacecountry 与值的名称进行比较是很烦人的。有没有一种通用的方法可以将某些东西与期权价值进行比较?

某种功能,例如: if ($birthplacecountry == this.option.value)

4

1 回答 1

1

在 codeIgniter 中,您应该使用Form helper来生成一个选择/下拉列表,即

$options = array(
    'Afganistan'  => 'Afganistan',
    'Albania'    => 'Albania',
);
echo form_dropdown('birthplacecountry', $options, 'Albania');

在此示例中,将创建一个dropdown带有名称的名称,并选择它,即 seconf 之一。第三个参数设置 selected ,因此,当您想使用 selected 选项重新填充表单时,可以执行以下操作birthplacecountryoptionAlbaniaoption

echo form_dropdown('birthplacecountry', $options, set_select('birthplacecountry', $this->input->post('birthplacecountry') );
于 2013-10-24T01:37:52.500 回答