$ _POST не находит значение "имя" - PullRequest
0 голосов
/ 17 января 2012

Я пытаюсь отправить форму, она ДОЛЖНА отправить имя, но я знаю, что я что-то напутал и просто не могу этого увидеть (3 часа сна прошлой ночью + новый проект кодирования на работе!= умная идея)

Вот моя форма на одной странице:

<form action="add.php" method="POST">
    <button type="submit" name="exportcult">Export All</button>
</form>

А вот код на другой странице, предназначенный для обработки POST:

if (!isset($_POST["name"]) || $_POST["name"] == '') {
    header('Location: '.$criteria."?error=data");
    die();
}

Я получаю сообщение об ошибке, которое отправляется обратно, поэтому я знаю, что оно не регистрирует имя - почему это может быть?

Ответы [ 5 ]

2 голосов
/ 17 января 2012

Я думаю, вы не понимаете, как на самом деле отправляются данные формы. «name» - это атрибут, а не значение ключа, найденное в данных POST. Вам необходимо указать имя для этого элемента, которое будет ключевым значением, присутствующим в данных POST. Вы указали name="exportcult", поэтому в данных POST переменная будет иметь значение $_POST['exportcult']. Однако это значение всегда будет пустой строкой, поскольку вы не указали атрибут value для своей кнопки.

Имейте в виду, что при работе с кнопками отправки только значение кнопки, которая использовалась для отправки формы, будет включено вместе с остальными данными формы. Попробуйте использовать это:

<button type="submit" name="exportcult" value="export">Export All</button>

Если эта конкретная кнопка использовалась для отправки формы, тогда $_POST['exportcult'] должен быть равен 'export'.

Для тех из вас, кто не уверен: кнопки do отправляются с формой , но они все еще должны иметь атрибут значения.

0 голосов
/ 17 января 2012

используйте именно это:

<form action="add.php" method="POST">
<input type="submit" name="name" value="Export All"></form>

if (!$_POST["name"])) {
    header('Location: '.$criteria."?error=data");
    exit();
}
0 голосов
/ 17 января 2012

Do:

if (!isset($_POST["exportcult"]) || $_POST["exportcult"] == '') {
    header('Location: '.$criteria."?error=data");
    die();
}

В настоящее время вы проверяете поле с именем «name», когда поле называется «exportcult».Кроме того, оно должно быть <input, а не <button.

0 голосов
/ 17 января 2012

Вы должны добавить

<input type="button" name="exportcult" value="Whatever you want" />

и проверьте exportcult на isset() вместо name

0 голосов
/ 17 января 2012

Ваша форма не содержит никаких полей, кроме кнопки, поэтому $_POST будет содержать только поле exportcult.

Редактировать: поскольку вы используете <button> вместо <input>, оно может не иметьперейти к отправленным данным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...