你好,我想做表单注册,我想在组合框和下拉框中给出错误表单,但它不能显示错误表单。
this is controller
function tambah_identitas()
{
$this->data['prodi'] = $this->mprodi->get_prodi();
//set validation properties
$this->input->post();
$this->form_validation->set_rules('nim', 'nim', 'required');
$this->form_validation->set_rules('email', 'email', 'required');
$this->form_validation->set_rules('no_telp', 'No Telpon', 'required');
$this->form_validation->set_rules('jenis_kelamin', 'Jenis Kelamin', 'required');
$this->form_validation->set_rules('status', 'Status', 'required');
$this->form_validation->set_rules('prodi', 'Prodi', 'required');
$this->form_validation->set_rules('angkatan', 'Angkatan', 'required');
$this->form_validation->set_rules('geup', 'Geup', 'required');
$this->form_validation->set_rules('tahun_masuk', 'Tahun Masuk', 'required');
if ($this->form_validation->run() == FALSE)
{
$this->data['contents'] = $this->load->view('mahasiswa/identitas', '', true);
}else{
$this->load->model('mdaftar');
$data = array(
'nama' => $this->session->userdata('nama'),
'username' => $this->session->userdata('username'),
'password' => $this->session->userdata('password'),
'level' => 3,
'nim' => $this->input->post('nim'),
'email' => $this->input->post('email'),
'no_telp' => $this->input->post('no_telp'),
'tempat_lahir' => $this->input->post('tempat_lahir'),
'tanggal_lahir' => $this->input->post('tanggal_lahir'),
'jenis_kelamin' => $this->input->post('jenis_kelamin'),
'angkatan' => $this->input->post('angkatan'),
'agama' => $this->input->post('agama'),
'status' => $this->input->post('status'),
'tahun_masuk' => $this->input->post('tahun_masuk'),
'id_prodi' => $this->input->post('prodi'),
'alamat' => $this->input->post('alamat'),
'geup' => $this->input->post('geup')
);
$this->mdaftar->insert_daftar($data);
redirect(site_url('mahasiswa/sukses'));
}
$this->load->model('mlogin');
$this->load->model('mprodi');
$this->data['orang'] = $this->mlogin->dataPengguna($this->session->userdata('username'));
$this->data['contents'] = $this->load->view('mahasiswa/identitas', $this->data, true);
$this->load->view('template/wrapper/mahasiswa/wrapper_sign',$this->data);
}
this this view
<div class="field">
<label>Geup<label style="color: #BD3131; font-size:20px; ">*</label></label>
<div class="ui dropdown selection">
<input type="hidden" name="geup" value="1">
<div class="default text">-Geup-</div><?php echo form_error('geup', '<div class="ui red pointing label">', '</div>'); ?>
<i class="dropdown icon"></i>
<div class="menu">
<div class="item active" data-value="Geup 1" value="1"> Geup 1</div>
<div class="item" data-value="Geup 2" value="2">Geup 2</div>
<div class="item" data-value="Geup 3" value="3">Geup 3</div>
<div class="item" data-value="Geup 4" value="4">Geup 4</div>
<div class="item" data-value="Geup 5" value="5">Geup 5</div>
<div class="item" data-value="Geup 6" value="6">Geup 6</div>
<div class="item" data-value="Geup 7" value="7">Geup 7</div>
<div class="item" data-value="Geup 8" value="8">Geup 8</div>
<div class="item" data-value="Geup 9" value="9">Geup 9</div>
<div class="item" data-value="Geup 10" value="10">Geup 10</div>
</div>
</div>
</div>
<div class="field">
<label>Status<label style="color: #BD3131; font-size:20px; ">*</label></label><?php echo form_error('status', '<div class="ui red pointing label">', '</div>'); ?>
<div class="ui radio checkbox">
<input type="radio" value="mahasiswa" name="status" checked="checked">
<label>Mahasiswa</label>
</div>
<div class="ui radio checkbox">
<input type="radio" value="alumni" name="status">
<label>Alumni</label>
</div>
</div>
但是当我尝试在表单输入错误表单显示,当我尝试在单选复选框和下拉错误表单不显示。
请告诉我该怎么办。谢谢你。
在控制器中创建一个名为_valid_status()
的方法,代码如下:
function _valid_status($str){
$this->form_validation->set_message('_valid_status', 'The %s field is not valid');
return $str == "alumni" || $str == "mahasiswa";
}
然后将callback__valid_status
添加到status
的规则中,如下所示:
$this->form_validation->set_rules('status', 'Status', 'required|callback__valid_status');