<select style="width:25%;" name='state' <?php if(form_error('state') != '') { echo 'id=error'; } ?>>
<option value=''>State</option>
<?php foreach($states->result() as $row)
{
echo "<option value='$row->state_name'>". $row->state_name."</option>";
} ?>
</select>
嗨,我在上面的代码中遇到问题,请帮帮我, set_value对我不起作用,表单验证失败后,下拉列表不会填充,提前感谢 或
做这样的事情,这里的目标是隐藏价值。现在如何将目标值设置为下拉值(选项值)
<script>
window.onload = function (){
target=document.getElementById('target').value;
if(target.length!=''){
// document.getElementByName('state').value=target;
}
}
</script>
答案 0 :(得分:12)
根据手册:
<select name="myselect">
<option value="one" <?php echo set_select('myselect', 'one', TRUE); ?> >One</option>
<option value="two" <?php echo set_select('myselect', 'two'); ?> >Two</option>
<option value="three" <?php echo set_select('myselect', 'three'); ?> >Three</option>
</select>
<select style="width:25%;" name='state' <?php if(form_error('state') != '') { echo 'id=error'; } ?>>
<option value=''>State</option>
<?php foreach($states->result() as $row)
{
echo "<option value='$row->state_name' " . set_select('state', $row->state_name) . " >". $row->state_name."</option>";
} ?>
</select>
[UPDATE]
<select style="width:25%;" name='state' <?php if(form_error('state') != '') { echo 'id=error'; } ?>>
<option value=''>State</option>
<?php
$defaultvalue = 'Nigeria'; //Please set default value here when nothing is selected before submit - change Nigeria
foreach($states->result() as $row)
{
echo "<option value='$row->state_name' " . set_select('state', $row->state_name, ((!isset(set_select('state', $row->state_name)) && ($row->state_name == $defaultvalue) ) ? TRUE : FALSE )) . " >". $row->state_name."</option>";
} ?>
</select>
如果您不想设置默认值,请从set_select中删除TRUE
如果使用菜单,此功能允许您显示所选的菜单项。第一个参数必须包含选择菜单的名称,第二个参数必须包含每个项目的值,第三个(可选)参数允许您将项目设置为默认值(使用布尔值TRUE / FALSE)。
答案 1 :(得分:4)
如果使用表单助手功能,则可以执行以下操作。
form_dropdown('name', $options, set_value('name', 'default'))
set_value
会选择该选项值。如果没有,它将使用“默认”值设置它。
答案 2 :(得分:2)
为什么不使用post值?
echo form_dropdown('name', $options, $this->input->post('name'));
答案 3 :(得分:1)
在表格验证运行FALSE In Codeigniter中,我们有更好的方法来填充选择值。这是CODE代码段。
以下是我的控制器。
function index() {
$this->load->view('welcome_message');
}
function form_validation() {
$this->load->library('form_validation');
$this->form_validation->set_rules('name', 'Name', 'trim|required');
$this->form_validation->set_rules('gender', 'Gender', 'trim|callback_check_if_gender_selected');
if ($this->form_validation->run() == FALSE) {
$this->index();
} else {
$this->load->view('validation_passed');
}
}
function check_if_gender_selected($value) {
if ($value == "0") {
$this->form_validation->set_message('check_if_gender_selected', 'Please Select Gender');
return FALSE;
} else {
return TRUE;
}
}
我的观点
答案 4 :(得分:0)
您应该使用set_select(),而不是set_value()
。除非您的表单验证根本没有解决..
<select style="width:25%;" name='state' <?php if(form_error('state') != '') { echo 'id=error'; } ?>>
<option value=''>State</option>
<?php foreach($states->result() as $row)
{
echo '<option value="$row->state_name" ' . set_select('state', $row->state_name) . '>'. $row->state_name."</option>";
} ?>
</select>
如果仍然无效,请告诉我,这可能与表单验证未触发有关(除非显示id="error"
)。
答案 5 :(得分:0)
<select style="width:25%;" name='state' <?php if(form_error('state') != '') { echo 'id=error'; } ?>>
<option value=''>State</option>
<?php foreach($states->result() as $row)
{
echo "<option value='$row->state_name' " . set_select('state', $row->state_name) . " >". $row->state_name."</option>";
} ?>
</select>
这对我有用。谢谢@jornsen的答案。
答案 6 :(得分:-1)
<option value="<?= $row->state_name ?>" ><?= $row->state_name ?></option>