Я использую CodeIgniter! У меня есть 3 переключателя - для выбора роли. Если вы выберете одну из трех переключателей, вы увидите разные выпадающие меню. Я хочу сделать правила проверки - для устранения ошибок проверки эха только для этих выпадающих списков для выбранного вами переключателя. Я попытался с этим, но он не показывает мне никаких ошибок проверки. Во-первых, мои радио кнопки являются:Если условие не работает с проверкой CodeIgniter
<input type="radio" name="role_id[]" onClick='showHide(this, true)' id="radio1" value="1" />
$data=array(
'name' => 'role_id[]',
'value' => '2',
'id' => 'radio2',
'onclick' => 'showHide(this, true)'
);
echo form_radio($data);
$data=array(
'name' => 'role_id[]',
'value' => '5',
'id' => 'radio5',
'onclick' => 'teachers_show(this, true)'
);
echo form_radio($data);
Мой контроллер:
public function register()
{
if ($this->input->post('role_id[]') === 1){
$this->form_validation->set_rules('first_name', First name', 'trim|required');
$this->form_validation->set_rules('last_name', 'Last name', 'trim|required');
$this->form_validation->set_rules('username', 'username', 'trim|required|min_length[6]|max_length[12]|is_unique[users.username]');
$this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[6]');
$this->form_validation->set_rules('password2', 'Confirm password', 'trim|required|matches[password]');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|is_unique[users.email]');
$this->form_validation->set_rules('location', 'Location', 'trim|required');
$this->form_validation->set_rules('school[]', 'School', 'required');
$this->form_validation->set_rules('class[]', 'Class', 'required');
$this->form_validation->set_rules('role_id[]', 'Role', 'required');
$this->form_validation->set_rules('class_divisions[]', 'Class division', 'required');
$this->form_validation->set_rules('region', 'Region', 'required');
$this->form_validation->set_rules('teacher[]', 'teacher', 'required');
}
elseif ($this->input->post('role_id[]') === 2){
$this->form_validation->set_rules('first_name', First name', 'trim|required');
$this->form_validation->set_rules('last_name', 'Last name', 'trim|required');
$this->form_validation->set_rules('username', 'username', 'trim|required|min_length[6]|max_length[12]|is_unique[users.username]');
$this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[6]');
$this->form_validation->set_rules('password2', 'Confirm password', 'trim|required|matches[password]');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email|is_unique[users.email]');
$this->form_validation->set_rules('location', 'Location', 'trim|required');
$this->form_validation->set_rules('school[]', 'School', 'required');
$this->form_validation->set_rules('class[]', 'Class', 'required');
$this->form_validation->set_rules('role_id[]', 'Role', 'required');
$this->form_validation->set_rules('class_divisions[]', 'Class division', 'required');
$this->form_validation->set_rules('region', 'Region', 'required');
}
elseif ($this->input->post('role_id[]') === 5){
$this->form_validation->set_rules('all_teachers_show', 'ALL Teachers', 'required');
}
if ($this->form_validation->run()==FALSE)
{
$this->signup();
}
else
{
//register
}
}
Если я использую что-то вроде этого:
if ($this->input->post('role_id[]') < 2){
// validation rules
}
if ($this->input->post('role_id[]') >4){
// validation rules
}
Это показывает мне ошибки проверки, но и для role_id = 1. Для role_id = 5 показаны ошибки проверки, которые относятся к role_id = 1. Не могли бы вы мне помочь? :) Благодаря!
Я также попытался с: если ($ this-> вход-> пост («ROLE_ID») == 2) {но ошибок не видно. Мое радио buttosn называется «role_id []», и они имеют значения 1, 2 и 5. –
В этом случае '==' вы проверяете, не равны ли данные, не сравнимые с типом данных. Если [is_identical] (http://php.net/manual/en/internals2.opcodes.is-identical.php) или '===' проверяет тип данных (string, integer, boolean ...). – Tpojka
Как проверить, является ли role_id [] равным 1, 2 или 5? –