2009-04-22 44 views
0

我有一个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'] ; 

然而,当我尝试回声()$ history12,它总是返回空白。我无法弄清楚我做错了什么,因为其他输入工作正常(文本和电台),但它似乎是在选择上打击。

+0

愚蠢的问题..是窗体标签内的选择标签? – 2009-04-22 00:33:42

回答

4

有几件事情要检查

  • 有它周围的表单元素
  • 是否表单元素使用POST
  • 你得到的print_r任何东西($ _ REQUEST);
  • 而作为最后的手段,你在get_defined_vars()
+0

这是最大的问题,并修复它。谢谢! – dmanexe 2009-06-09 18:19:19

0

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

默认情况下选择了某些东西,所以它更可能是在放置选择之前在某处清除了变量或关闭了您的表单。

您也可以在其他地方做一些格式不正确的html,对表单做些简单的事情。

+0

默认情况下会选择某些东西,即使选择了某些东西,也不会选择骰子。 – dmanexe 2009-04-22 00:34:39

5

也许你可以尝试输出整个$ _REQUEST变量,以确保你所期望的一切都显示出来。这可能至少表明是否设置了“history12”键。

print_r($_REQUEST); 
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; 
} 
?> 
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的代码,并用正则表达式或某些东西来做一些简单的事情,并剥夺你的价值。

1

你是否确保你不会在上面同名的同一个名称之后意外地有另一个表单元素?

我已经有几次了,例如“history12”作为下拉菜单,但后面是一个隐藏的字段,后面跟着相同的名称和值。这将覆盖选择。

相关问题