Я создаю скрипт профиля, в котором пользователи могут редактировать свои личные данные, интересы и ссылки.
У меня были все поля в одной форме, но теперь я хочу разделить их по вкладкам.Так что у меня будет вкладка личной информации, вкладка интересов и вкладка ссылок.На каждой странице у меня будет форма для отправки данных в соответствующую функцию.Например, если вы редактируете личную информацию, форма будет перенаправлена на mysite.com/edit/personal_info
Функции должны выглядеть следующим образом
function edit() {
function personal_info() {
//data
}
function interests() {
//data
}
function links() {
//data
}
}
Я не уверен, как правильно отправлять данные сфункция edit () для всех своих подфункций.
Я добавляю общие данные ниже ко всем своим функциям, но хочу добавить их один раз, и все функции должны иметь их.Я также пытаюсь избежать глобальных переменных.
$this->db->where('user_id', $this->tank_auth->get_user_id());
$query = $this->db->get('user_profiles');
$data['row'] = $query->row();
Затем в каждой подфункции у меня есть правила проверки (codeigniter). Ниже приведены правила для функции personal_info
$this->form_validation->set_rules('first_name', 'First Name', 'trim|required|xss_clean|min_length[2]|max_length[20]|alpha');
$this->form_validation->set_rules('last_name', 'Last Name', 'trim|required|xss_clean|min_length[2]|max_length[20]|alpha');
$this->form_validation->set_rules('gender', 'Gender', 'trim|required|xss_clean|alpha');
и инструкция для добавления данных в базу данных или возврата.ошибка при сбое правил валидации
if ($this->form_validation->run() == FALSE) //if validation rules fail
{
$this->load->view('edit_profile', $data);
}
else //success
{
$data = array (
'first_name' => $this->input->post('first_name'),
'last_name' => $this->input->post('last_name'),
'gender' => $this->input->post('gender')
);
$this->load->model('Profile_model');
$this->Profile_model->profile_update($data);
}
Как правильно создать эти подфункции без повторения кода в каждой из них?