@Nikoblood

Почему Codeigniter возвращает GET массив в url адресе в ответ на отправку заполненной формы?

Здравствуйте. Изучаю на практике фреймворк Codeigniter и столкнулся с проблемой, решение которой я не обнаружил в интернете ( наверное, плохо искал).

Есть форма. Сам открывающий тег формы я прописывал разными способами, как и через html, так и через php ( echo form_open('user/reg_user'); )

Однако в ответ я получал обычное обновление страницы с перечислением данных, что были в форме через GET запрос ( аля ?fio=ано&login=vasia%40gmail.com&password=qqq&city=kiev)

После того как я попытался "оживить" другую форму на соседней странице через этот же контроллер\действие, все заработало в обеих формах как надо, однако получать данные в модель можно только путем $this->input->get('some_data'); что означает, что данные передаются через все тот же злополучный GET массив

Массив POST возвращается пустым.

Помогите, пожалуйста, с данной проблемой.
  • Вопрос задан
  • 2678 просмотров
Пригласить эксперта
Ответы на вопрос 3
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
Перечитайте заголовок своего вопроса и сам вопрос. Во-первых, вопроса как такого нет. Во-вторых, непонятно что не так :) Ну и много ненужных деталей.

Страница обновляется и параметры добавляются в url, т.к. у формы не задан action (url отправки формы), поэтому он выставляет его по-стандарту в текущий юрл. Ну и метод передачи GET делает свое дело - все параметры передаются через URL, так что поведение корректное.

В html коде формы пишете
<form action="<?=site_url('controller/action')?>" method="POST" name="myform">
...

В контроллере получаете данные:
$data = $this->input->post('myform'); 
// или
$data = $this->input->post_get('myform'); // в этом случае он сначала попытается найти данные в POST, а потом в GET
Ответ написан
Комментировать
@Nikoblood Автор вопроса
Вы меня не поняли, наверное надо конкретней изьясняться :)

Есть форма. Стоит метод отправки POST. Стоит action, я написал, что задавал его 2мя способами: через хелпер form ( ( echo form_open('user/reg_user'); ) и как вы сказали.

Данные приходят на мой контроллер, который я указал, ТОЛЬКО В МЕТОДЕ GET. POST приходит пустой.

Это является проблеммой, которую я не могу решить.
Ответ написан
Playmore
@Playmore
Опытный разработчик
form_open('user/reg_user', array('method' => 'post'))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы