J'ai un formulaire qui a des sections cachées jusqu'à ce que, la bonne donnée est soumise. Je veux le faire par jQuery et ajax. J'espérais que je serais montrent en mesure l'élément suivant sur le formulaire si le dernier morceau est entré dans la base de données ok, actuellement mon contrôleur ressemble à ceci,codeigniter et l'aide ajax
function add_career() {
$data = array();
$this->load->model('admin_model');
$this->load->library('form_validation');
if($this->input->post('career_set') == 'Save') {
$this->form_validation->set_rules('career_name', 'Career name', 'required|min_length[3]');
$this->form_validation->set_rules('career_desc', 'Career description', 'required|max_length[3000]');
$this->form_validation->set_rules('useful_info', 'Useful Information', 'max_length[1000]');
$this->form_validation->set_rules('useful_links', 'Useful Links', 'max_length[1000]');
if ($this->form_validation->run() == FALSE) {
$this->template->build('admin/add_career');
} else {
if($this->input->post('degree_needed')) {
$degree_needed = 'Yes';
} else {
$degree_needed = 'No';
}
$this->load->model('careers');
$insertCareer = $this->careers->save(
$this->input->post('career_name'),
$this->input->post('career_desc'),
$degree_needed,
$this->input->post('useful_info'),
$this->input->post('useful_links')
);
$insertCareer['career_id'] = $this->db->insert_id();
//save the data in the session, so we can to it if need be
$this->session->set_userdata(array('career' => $insertCareer));
$this->firephp->log($this->session->userdata);
}
}
$careerData = $this->session->userdata('career');
if($this->input->post('salary_set') == 'Save') {
$this->form_validation->set_rules('basic_salary', 'Basic salary', 'required|max_length[12]');
$this->form_validation->set_rules('trained_salary', 'Fully trained salary', 'required|max_length[12]');
$this->form_validation->set_rules('progressed_salary', 'Progressing onto salary', 'required|max_length[12]');
$this->form_validation->set_rules('average_salary', 'Average salary', 'required|max_length[12]');
if ($this->form_validation->run() == FALSE) {
$this->template->build('admin/add_career');
} else {
$this->load->model('salaries');
$insertSalary = $this->salaries->save(
$this->input->post('basic_salary'),
$this->input->post('trained_salary'),
$this->input->post('progressed_salary'),
$this->input->post('average_salary'),
$careerData['career_id']
);
$this->session->set_userdata(array('salary' => $insertSalary));
$this->firephp->log($this->session->userdata);
}
}
if($this->input->post('course_grades_set') == 'Save') {
//first off we need to save the grade details
$this->load->model('grades');
$this->load->model('course');
$this->firephp->log(count($_POST['grade_desc']));
foreach ($_POST['grade_desc'] as $k => $v) {
$this->firephp->log($v, 'Looped Results');
$insertGrade = $this->grades->save($v, $careerData['career_id']);
// theorertically we should be able to save the assicated course at the same time using $k
$insertCourse = $this->course->save(
$_POST['course_type'][$k],
$_POST['course_names'][$k],
$_POST['course_links'][$k],
$this->db->insert_id()
);
$this->firephp->log($insertGrade, $k);
$this->firephp->log($insertCourse, $k);
}
//$insertGrades = $this->grades->save()
//);
}
$this->template->build('admin/add_career', $data);
}
J'ai besoin essentiellement à mon ajax pour vérifier que la dernière les données ont été soumises à la base de données ok et ensuite changer l'affichage aucun sur le formulaire suivant pour afficher le bloc? Est-ce tout possible? Comment puis-je vérifier que les données ont été enregistrées avec succès avant de montrer l'étape suivante du formulaire.