我做了一个非常简单的表单,只是为了看看我在PHP中提交数据时是否做得对。它只包含三个单选按钮,没有别的。没错,我没有像我期望的那样得到$ _POST的价值。
表格:
<form name='testform' action='test.php' method='post'>
<input type='radio' name='testbutton' value='larry' />
<input type='radio' name='testbutton' value='curly' />
<input type='radio' name='testbutton' value='moe' />
<input type='submit' value='Submit'>
</form>
脚本test.php:
if($_POST['testbutton'] == 'larry') {
echo "You picked Larry";
} elseif($_POST['testbutton'] == 'curly') {
echo "You picked Curly";
} else {
echo "You picked Moe";
}
代码没有返回错误,但是无论我选择什么按钮,我总是得到Moe,即使根本没有选择任何按钮。使用var_dump($ _ POST)什么都不给,空格。无论我选择什么,使用print_r($ _ POST)给1。我无法在这里找到我做错的事。
顺便说一下,我知道这段代码不是最优的,但我只是在这里测试一下。
答案 0 :(得分:3)
你可能还有一些其他代码没有显示给我们,它为$ _POST变量赋值,覆盖它。
如果你制作一个全新的php文件,并输入你在这里发布的代码,它应该可以正常工作。
答案 1 :(得分:0)
我知道这是一个老帖子,但在调试神秘问题时,有时候另一个建议可能会帮助某人解决他们“缺乏POST”数据的谜团。
在我的情况下,我使用ajax提交表单。在javascript代码中:我已将“type:”设置为“GET”,然后继续编写代码来处理服务器端PHP脚本中的“$ _POST”数据。欺骗性地,请求的视图(如Chrom Developer工具中所示)具有正确的值,因此您可以确信值正在传输。但是,在进一步检查时,您会看到响应标题显示为“GET”。
肯定是哑巴错误。希望这有助于拯救其他人从类似的调试地狱。
答案 2 :(得分:-1)
<input type="submit" name="MySubmit" value="Submit">
if(isset($_POST['MySubmit'])) { $selected = $_POST['testbutton']; switch($selected){ 'larry': echo "You picked Larry"; break; 'curly': echo "You picked Curly"; break; default: "You picked Moe"; break; } } else { echo "Form submit failed"; }