Я много раз не мог понять, почему атрибут действия моей формы работает некорректно, когда я нажимаю кнопку «Отправить».
Все, что я хотел сделать, это передать данные формы контроллеру. Но происходит то, что браузер просто перенаправляет меня на другую страницу (на локальном хосте, даже если URI правильно поставлен).
<form name = "employee" method = "post" action = "<?php echo base_url() .'employee/add_employee'; ?>"> First Name: <input type = "text" name = "F_Name"> Middle Name: <input type = "text" name = "M_Name"> Last Name: <input type = "text" name = "L_Name"> <input type = "submit" value = "save"> </form>
Вот функция add_employee в моем employee.php (с именем класса «Сотрудник»):
public function add_employee(){ $employee = array( 'F_Name' => $this->input->post('F_Name'), 'M_Name' => $this->input->post('M_Name'), 'L_Name' => $this->input->post('L_Name') ); $this->Employee_model->insert_employee($employee); echo "Employee added!<br />"; }
Я не думаю, что проблема Employee_model является проблемой, поэтому я не буду добавлять ее здесь. Я предполагаю, что проблема связана с URL-адресом в моей форме.
Почему браузер перенаправляет меня на другую страницу вместо выполнения функции add_employee ()?
Поэтому после долгого обсуждения, вот решение:
В вашем htaccess вам пришлось изменить
RewriteBase /CI/
в RewriteBase /CI_Practice2
Кроме того, возможно, вам нужно сделать это с помощью MAMP (возможно, нет)
локальный: 8080 / CI_Practice2
Это если вы не изменили порты по умолчанию MAMP.
Хорошего дня
Использовать site_url ()
Попробуй это
<form name = "employee" method = "post" action = "<?php echo site_url('employee/add_employee'); ?>">