Почему значение моей формы не отображается в $ _REQUEST? - PullRequest
0 голосов
/ 22 апреля 2009

У меня есть этот код из формы HTML:

<select name="history12">
    <option value="Gov/Econ">Government &amp; Economics</option>
    <option value="AP Gov/Econ">AP Government &amp; Economics</option>
</select>

... и этот код в форме почтовой программы:

$history12 = $_REQUEST['history12'] ;

Однако, когда я пытаюсь вызвать echo () $ history12, он всегда возвращается пустым. Я не могу понять, что я делаю неправильно, так как другие входы работают нормально (текст и радио), но кажется, что это мешает выборам.

Ответы [ 6 ]

5 голосов
/ 22 апреля 2009

Возможно, вы можете попытаться вывести всю переменную $ _REQUEST, чтобы убедиться, что все, что вы ожидаете, отображается. Это может как минимум указывать, установлен ли ключ 'history12'.

print_r($_REQUEST);
4 голосов
/ 22 апреля 2009

Несколько вещей для проверки

  • Есть ли вокруг него элемент формы
  • Использует ли элемент формы POST
  • Получаете ли вы что-нибудь от print_r ($ _ REQUEST);
  • И, наконец, вы видите значение где-нибудь в get_defined_vars()
1 голос
/ 22 апреля 2009

Вы гарантировали, что у вас случайно нет другого элемента формы после того же с тем же именем?

Пару раз я имел, например, "history12" в качестве раскрывающегося списка, но затем скрытое поле с тем же именем и без значения. Это перезапишет выделение.

1 голос
/ 22 апреля 2009

Если вы повторили ваш код в чистом виде, и он работает нормально. Ваша проблема должна быть где-то еще.

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

<form action="test.php" method="post">
<select name="history12">
    <option value="Gov/Econ">Government &amp; Economics</option>
    <option value="AP Gov/Econ">AP Government &amp; Economics</option>
</select>
<input name="send" type="submit" value="send" />
</form>
<?php

if(isset($_POST['history12'])) {
    $history12 = $_REQUEST['history12'] ;
    echo $history12;
}
?>
0 голосов
/ 22 апреля 2009

Когда я запускаю это:

<code><form action='me.php' method='POST'>
<select name="history12">
    <option value="Gov/Econ">Government &amp; Economics</option>
    <option value="AP Gov/Econ">AP Government &amp; Economics</option>
</select>
<input type='submit' name='submit' value='lksjdflk' />
</form>
<pre>
<?php 

var_dump($_REQUEST);

?>

я получаю это:

array(2) {
  ["history12"]=>
  string(11) "AP Gov/Econ"
  ["submit"]=>
  string(8) "lksjdflk"
}

Вам нужно разместить html вокруг вашей формы и кода, получающего ее на стороне сервера.

также попробуйте изменить значения с «Gov / Econ» на «Gov Econ» и посмотрите, что вы получите. Возможно, вы выполняете какой-то код, который обрабатывает $ _REQUEST, и делает что-то напуганное с помощью регулярных выражений или чего-то еще и лишает вас значения.

0 голосов
/ 22 апреля 2009

Убедитесь, что что-то выбрано при отправке формы.

Что-то выбрано по умолчанию, так что более вероятно, что вы где-то стираете переменную или закрываете свою форму в html перед тем, как поместить выбор.

Вы могли бы также иметь какой-нибудь искаженный html в другом месте, делая что-то необычное с формой.

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