我想设置选择选项,如果选择提交在ci中,选项值从数据库中获取?我试过了,但没成功!有人能告诉我解决办法吗?
这是我的控制器
public function add(){
$this->pageAction = 'Add';
$error = array ();
$finalData = array ();
if($this->input->post('doAct') == strtolower($this->pageAction)){
$this->form_validation->set_rules('country', 'Country Name', 'required');
$this->form_validation->set_rules('city', 'City Name', 'required');
$this->form_validation->set_rules('status', 'Status', 'required');
if($this->form_validation->run() == FALSE){
$finalData['error'] = "error";
}else{
$data = array (
'c_id'=>$this->input->post('country'),
'name'=>$this->input->post('city'),
'active'=>$this->input->post('status')
);
if($this->main_manager->insert($data, "city") == false){
$finalData['error'] = 'Cannot save data. Please try again.';
}else{
$this->session->set_flashdata('msg', 'The data has been added successfully');
redirect(SITE_ADMIN_URL . "city_admin/index");
}
}
}
$finalData['country'] = $this->main_manager->select_all('country');
$this->load->view('administrator/header');
$this->load->view('administrator/add_city', $finalData);
$this->load->view('administrator/footer');
}这是我的观点
<form class="form-horizontal" name="" id="" enctype="multipart/form-data" method="post" action="<?php echo SITE_ADMIN_URL;?>city_admin/add"/>
<div class="control-group">
<label class="control-label" for="form-field-1">Country Name</label>
<div class="controls">
<select name="country">
<option value="">Please Select Country</option>
<?php
for($a = 0; $a < count($country); $a++){
?>
<option value="<?php echo $country[$a]['id'];?>"><?php echo $country[$a]['name'];?></option>
<?php
}
$select = "";
if($country == "selected"){
$country = $select;
?>
<option value="<?php echo $select[$a]['id'];?>"><?php echo $select[$a]['name'];?></option>
<?php }
?>
</select>
<!--<input type="text" id="reason" name="country" value="<?php // echo set_value('country'); ?>" />-->
</div>
</div>
<div class="control-group">
<label class="control-label" for="form-field-1">City</label>
<div class="controls">
<input type="text" id="reason" name="city" value="<?php echo set_value('city');?>" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="form-field-1">Status</label>
<div class="controls">
<input type="radio" name="status" id="status" value="1" <?php echo set_radio('status', '1');?>>
<span class="lbl"> Active</span>
<input type="radio" name="status" id="status" value="0" <?php echo set_radio('status', '0');?>>
<span class="lbl"> Inactive</span>
</div>
</div>
<div class="space-4"></div>
<div class="form-actions">
<input type="hidden" name="doAct" value="add">
<button class="btn btn-info" type="submit" name="submit">
<i class="icon-ok bigger-110"></i>
Submit
</button>
<button class="btn" type="reset">
<i class="icon-undo bigger-110"></i>
Reset
</button>
</div>
</form>发布于 2015-02-16 10:34:31
在您的示例中,我不知道您在哪里定义默认值,因为您只将$country数组发送到视图。对于这个例子,我们假设在您的视图中有一个名为$default_value的变量。
如果您想继续构建表单而不使用form_helper:
<select name="country">
<option value="">Please Select Country</option>
<?php foreach ($country as $c): ?>
<option value="<?php echo $c->id ?>" <?php echo ($c->id == $default_value)?'selected="selected"':''?>><?php echo $c->name?></option>
<?php endforeach ?>
</select>但是您也可以使用form_helper:
1/在控制器中准备一个数组,该数组将填充您的选择。
$data["countryArray"] = array(
'-1' => 'Please Select Country',
'1' => 'Australia',
'2' => 'France',
'3' => 'Belgium',
'4' => 'Brasil',
);然后在你看来:
echo form_dropdown('country', $countryArray, set_value($default_value', '-1'));
//First param : name attribute | second param : array containing <options> | third param : default valuehttps://stackoverflow.com/questions/28537302
复制相似问题