为什么我的表单值没有出现在$ _REQUEST中?

时间:2009-04-22 00:29:31

标签: php html forms

我从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 个答案:

答案 0 :(得分:5)

也许您可以尝试输出整个$ _REQUEST变量,以确保您期望的所有内容都显示出来。这可能至少表明'history12'键是否已设置。

print_r($_REQUEST);

答案 1 :(得分:4)

要检查的一些事项

  • 周围是否有表单元素
  • 表单元素是否使用POST
  • 你从print_r($ _ REQUEST);
  • 得到任何东西
  • 作为最后的手段,您是否在get_defined_vars()
  • 中的任何位置看到了价值

答案 2 :(得分:1)

如果以干净的形式重复您的代码并且工作正常。你的问题必须在其他地方。

获取此代码并开始添加其他组件,您可以测试哪一个给您一个问题。

<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;
}
?>

答案 3 :(得分:1)

您是否确保在上述名称之后不会意外地拥有另一个表单元素?

我曾经有过几次,例如“history12”作为下拉列表,但之后是一个隐藏的字段,后面有相同的名称,没有任何价值。这将覆盖选择。

答案 4 :(得分:0)

确保在提交表单时选择了某些内容。

默认情况下会选择某些内容,因此您更有可能在某处擦除变量或在放入选择之前以html格式关闭表单。

你也可能在其他地方做了一些格式错误的html,做了一些时髦的表格。

答案 5 :(得分:0)

当我运行时:

<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);

?>
</pre>

我明白了:

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

您需要在表单周围发布html以及在服务器端接收它的代码。

另外,尝试将值从“Gov / Econ”更改为“Gov Econ”,看看你得到了什么。您可能正在运行一些代码来处理$ _REQUEST并使用正则表达式或某些东西做一些时髦的事情并剥夺您的价值。