У меня трудное время заставить это работать. Может быть, моя логика ошибается, но я думаю, что кто-то с большим опытом может мне помочь.Codeigniter: проверка формы при обновлении записей
У меня есть страница «http://domain.com/account/settings», где пользователи могут редактировать свою учетную информацию. Когда форма отправляется, она запускает метод «settings_save». Все это хорошо, если форма представляет успешно, однако, в случае, если одна из области не проверяет, то URL остается в «http://domain.com/account/settings_save» Я на самом деле хочу, чтобы остаться на http://domain.com/account/settings "
account.php контроллер
function settings() {
$data['records'] = $this->account_model->getAccountSettings("sam");
$this->load->view('account_settings_view', $data);
}
function settings_save() {
$this->load->library('validation');
$records['email'] = "trim|required|min_length[4]|xss_clean";
$records['gender'] = "trim|required|xss_clean";
$records['seeking'] = "trim|required|xss_clean";
$records['marital_status'] = "trim|required|xss_clean";
$records['kids'] = "trim|required|xss_clean";
$records['drinking'] = "trim|required|xss_clean";
$records['smoking'] = "trim|required|xss_clean";
$records['ethnicity'] = "trim|required|xss_clean";
$records['body_type'] = "trim|required|xss_clean";
$records['zipcode'] = "trim|required|min_length[5]|numeric|xss_clean";
$this->validation->set_rules($records);
if ($this->validation->run() == false)
{
$this->load->view('account_settings_view', $records);
}
else
{
$records = array();
$records['email'] = $this->validation->email;
$records['gender'] = $this->validation->gender;
$records['seeking'] = $this->validation->seeking;
$records['marital_status'] = $this->validation->marital_status;
$records['kids'] = $this->validation->kids;
$records['drinking'] = $this->validation->drinking;
$records['smoking'] = $this->validation->smoking;
$records['ethnicity'] = $this->validation->ethnicity;
$records['body_type'] = $this->validation->body_type;
$records['zipcode'] = $this->validation->zipcode;
$this->account_model->saveAccountSettings("sam", $records);
$this->session->set_flashdata('message', 'Done. You have added new task.');
redirect('account/settings');
//redirect('account/settings');
}
}
account_settings_view.php вид
у меня есть следующие строки:
<?=form_open('account/settings_save');?>
Похоже, я куда-то. Как насчет того, если проверка не проходит? Я предполагаю, что мне понадобится «еще». Если да, то как бы я справился с последними двумя строками кода, где вы загружаете представление? – luckytaxi
Вам не нужен ник. Если проверка не удалась, будет загружен один и тот же вид и = Validation_errors(); ?> вернет строку (или несколько) и повторно заполнит ваши формы. Если он был успешным, ваша информация будет добавлена в вашу базу данных и показано сообщение об успешном завершении. – Zack
Спасибо, у меня была ошибка в моем коде, которая помешала этому. Это потрясающе, наконец, получило его работу. Благодаря! – luckytaxi