无法在 php 中获取单选值
Posted
技术标签:
【中文标题】无法在 php 中获取单选值【英文标题】:Can not get radio values in php 【发布时间】:2015-02-15 10:14:33 【问题描述】:好的,这是一个菜鸟问题,但我一直在搜索和搜索,无法找到如何做到这一点。我无法使用 php 获取单选按钮的值。
<!DOCTYPE html>
<html>
<body>
<form action="" method="POST">
Do you buy your lunch?
<br>
<input type="radio" name="doyoubuy" value="Yes" checked>Yes
<br>
<input type="radio" name="doyoubuy" value="No">No
<br><br>
<input type="submit" value="submit">
</form>
<?php
if (isset($_POST['submit']))
if (isset($_POST['doyoubuy']))
echo "You have selected :".$_POST['doyoubuy'];
?>
</body>
</html>
谢谢!!!
【问题讨论】:
【参考方案1】:动作应该是当前页面。在你的情况下是“”
【讨论】:
虽然根据 HTML 规范在技术上是无效的...所有现代浏览器的行为都是在操作为空时提交到当前 URL。【参考方案2】:你正在检查if (isset($_POST['submit']))
但是您的提交按钮实际上并没有命名...
所以就命名吧:
<input type="submit" value="submit" name="submit">
那么你的收音机代码应该可以正常工作了。
【讨论】:
【参考方案3】:我建议您考虑以下 HTML 和 PHP:
<html>
<body>
<form method="POST">
Do you buy your lunch?
<br>
<input type="radio" name="doyoubuy" value="Yes" checked>Yes
<br>
<input type="radio" name="doyoubuy" value="No">No
<br><br>
<input type="submit" name="submit" value="submit">
</form>
<?php
if (isset($_POST) && $_POST != NULL)
if ( $_POST['doyoubuy'] == 'Yes' || $_POST['doyoubuy'] == 'No')
$answer = $_POST['doyoubuy'];
echo "You selected :". $answer;
?>
</body>
</html>
需要测试的是表单是否提交。如果是这样,假设每个字段在表单中都有一个名称,那么某个类型的值将与每个字段相关联,这样就无需测试是否设置了提交按钮。此外,如果用户提交了一个表单但没有填写,例如,一个文本输入,那么该字段的值仍然会被设置;它将被设置为一个空字符串。
不建议信任已发布的表单值并认为它可以安全使用。在这种情况下,我会测试以确保答案是我所期望的,以防万一有人欺骗了表单并将答案更改为我想要的以外的其他内容。
默认情况下,如果省略了表单的ACTION属性,则其值为包含表单的页面的url。
【讨论】:
以上是关于无法在 php 中获取单选值的主要内容,如果未能解决你的问题,请参考以下文章