Почему я не могу получить значения POST?

0

Это моя форма, которая динамически генерируется:

<form action='index.php?direction=saveUserPreferences' method='post'>
<label>Office space<input type='checkbox' name='userInterest[]' value='1' id='1'></label>
<label>Grants<input type='checkbox' name='userInterest[]' value='2' id='2' checked></label>
<label>Loans<input type='checkbox' name='userInterest[]' value='3' id='3'></label>
<label>Events<input type='checkbox' name='userInterest[]' value='4' id='4' checked></label>
<label>Connecting<input type='checkbox' name='userInterest[]' value='5' id='5' checked></label>
<label>Office administration<input type='checkbox' name='userInterest[]' value='6' id='6' checked></label>
<label>TAX<input type='checkbox' name='userInterest[]' value='7' id='7' checked></label>
<label>Self employment<input type='checkbox' name='userInterest[]' value='8' id='8' checked></label>
<label>Start up<input type='checkbox' name='userInterest[]' value='9' id='9' checked></label>
<label>Banks<input type='checkbox' name='userInterest[]' value='10' id='10' checked></label>
<input type='text' name='name' id='name'/>
<input type='submit' name='sendData' value='Save'/>

Форма указывает на функцию контроллера:

   public function saveUserPreferences() {
    var_dump($_POST);

}

Я попытался проверить, установлена ли почта и т.д., И я не могу получить массив из сообщения.

У меня также есть форма входа в систему, которая указывает на тот же контроллер и другую функцию, и она отлично работает. Поэтому я знаю, что файл контроллера может и получает значения сообщений.

Но по какой-то странной причине, для этой конкретной формы я не могу получить никаких значений. Я искал другие вопросы и ответы, но не могу заставить эту работу работать. Я также знаком с: учебником PHP о формах

После этого решения я получаю неопознанную ошибку индекса. Я что-то пропустил?

Заранее спасибо за любые советы и трюки;)

08 03 2015 Эй еще раз. Я понятия не имею, помогло ли это кому-то, я хотел бы дать обновленную информацию о том, что происходит. Как вы знаете, я бы ничего не получил со страницы, то есть, когда я буду эхо значения в php файле, ничего не будет. Тем не менее, в инструментах разработчика firebug и chrome (в заголовках и части ответа секции сети) я смог увидеть фактический ответ. Так что я сделал это: создал демонстрационную таблицу в базе данных и попытался вставить значения, которые я должен видеть из формы в базу данных. И, как ни странно, это сработало. Поэтому не спрашивайте меня, как это возможно, так как я понятия не имею. Поэтому я решил работать на основе ответов от инструментов разработчика и firebug. И текущий путь к моим данным - это. View-> Контроллер-> Модель (запись данных в переменную массива) → dao class-> база данных. Хорошо, спасибо за просмотр и комментирование этого. благодаря

  • 0
    У меня есть файл index.php только с var_dump ($ _ POST, $ _GET); сопровождаемый Вашей формой HTML в этом. Обратите внимание, нет функции «saveUserPreferences». Он работает так, как вы ожидаете, и показывает данные формы при нажатии «сохранить». Чтобы начать отлаживать ваш код, я бы начал, как и здесь, убедившись, что index.php запускается. Тогда я бы убедился, что выполняется правильный код контроллера. Кстати, форма нуждается в закрывающем теге, однако, это не является причиной каких-либо проблем здесь, поскольку браузер добавляет это.
  • 0
    Привет. спасибо за вклад. мой индексный файл получает данные и отправляется на контроллер, который перемещает данные в модель. я могу видеть эти данные в firebug. Вот функция моей модели: public function saveUserInterests () {echo "<p> Это модель </ p>"; foreach ($ _POST ['userInterest'] как $ row) {echo "<span>". $ row. ", </ span>"; }} и в firebug я вижу: Это модель 2, 4, 5, 6, 7, 8, 9, 10, поэтому я вижу, что данные передаются правильно. хорошо, эхо модели отображается, так что в конечном итоге правильный код выполняется. это действительно странная проблема ....
Показать ещё 1 комментарий
Теги:
forms

1 ответ

0

Есть ли переадресация до достижения контроллера? Данные POST существуют только для следующего запроса, поэтому, если вы отправляете /redirect.php, который приведет вас к /controller.php, $ _POST будет пустым.

Также ваши флажки мне не подходят. Нормальный флажок:

<input type="checkbox" name="vehicle" value="Bike"> I have a bike

Таким образом, имя - это то, что флажок "около", а значение оно имеет уникальное значение. [] Предназначен только для выбранных полей.

  • 0
    Итак, файл контроллера - это следующий файл, в который попадают данные. Я запутался по этому поводу, так как моя форма входа построена точно так же, и она работает. Это значит, что я получаю данные из формы входа. Спасибо
  • 0
    посмотрев еще раз на это, вы правы. данные попадают на index.php, а затем отправляются в контроллер. но данные из логина также отправляются и перемещаются таким же образом, а в контроллере данные доступны ... странно;)
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню