【问题标题】:Getting PHP to display radio button information让 PHP 显示单选按钮信息
【发布时间】:2012-07-15 10:46:15
【问题描述】:

我想要几个单选按钮来显示动态网页的信息。我有(在 PHP 中):

echo '
    <html>
        <head>
            <title> Dynamic PHP </title>
        </head>
        <body>
            <form action="dynamic.php" method="get">
                <input type="radio" name="dynamic" value="home" checked> Home </br>
                <input type="radio" name="dynamic" value="site1"> Site 1 </br>
                <input type="radio" name="dynamic" value="site2"> Site 2
            </form>

        </body>
    </html>
';

if (isset($_GET["home"])){
    echo "Home";
}
if (isset($_GET["site1"])){
    echo "Site 1";
}
if (isset($_GET["site2"])){
    echo "Site 2";
}

我没有收到任何错误,但也没有任何反应。非常感谢。

编辑:这就像我要问的:radio button value in php

【问题讨论】:

  • “主页”、“站点 1”或“站点 2”在按下按钮时不显示。
  • @DainisAbols “工作正常”是什么意思?喜欢代码对你有用吗?
  • 您是否将此表单提交到同一页面,然后想要“检查”被选中的那个?
  • 是的,我想要选中哪个单选按钮来显示特定文本。

标签: php radio-button


【解决方案1】:

PHP 通过其“name”属性而不是“value”属性访问表单变量。为了检索所选单选按钮的值,您将使用 $_GET['dynamic'] 而不是 $_GET['home']$_GET['site1']$_GET['site2']

所以假设这个页面被称为dynamic.php,你的代码来回显所选页面将是:

if(!empty($_GET['dynamic'])){

    echo $_GET['dynamic'];

}

希望这会有所帮助!

编辑:为了回显所选选项:

<?php 
if(!empty($_GET['dynamic'])){
      $selected = $_GET['dynamic'];
}
else{
      //if no option was selected, set home as default
      $selected = 'home';
}
?>

<form action="dynamic.php" method="get">
         <input type="radio" name="dynamic" value="home"  /> Home <?php echo ($selected == 'home' ? 'This was selected!' : '');?> </br>
         <input type="radio" name="dynamic" value="site1" /> Site 1 <?php echo ($selected == 'site1' ? 'This was selected!' : '');?> </br>
         <input type="radio" name="dynamic" value="site2" /> Site 2 <?php echo ($selected == 'site2' ? 'This was selected!' : '');?> </br>
</form>

【讨论】:

  • 嗯。我正在尝试这样做,但除了三个单选按钮之外什么都没有显示
  • 哦,你到底想在按钮旁边显示什么?假设我选择了“家”,你想说什么?
  • 更改了上面的代码以在所选选项旁边显示一些内容。试试看。
  • 谢谢。我应该把这个放在哪里? “家”不应该是“家”吗?
  • PHP 读取撇号和引号几乎相同。两者都创建字符串,因此echo "cat";echo 'cat'; 将产生相同的结果。它们大多是可以互换的。您需要做的就是将您想要写的内容放在每个语句的echo 'This was selected!' 部分。
【解决方案2】:

因为你的单选按钮的名称属性设置为“动态”,我想你必须试试这个:

if(isset($_GET["dynamic"])) {
    // do something here
    echo $_GET["dynamic"];
}

【讨论】:

  • 嗯。奇怪的。它似乎没有改变任何东西。
  • 这很奇怪......我现在无法检查,但这应该可以
  • 我有三个单选按钮。我应该为所有单选按钮设置 ($_GET["dynamic"]) 吗?我认为这不会起作用,因为它将所有单选按钮设置为在设置为“动态”时显示相同的内容。还有其他想法吗?谢谢
  • 如果 $_GET["dynamic"] 被设置,这意味着任何一个按钮被选中,被选中的按钮的值在 $_GET["dynamic"]
  • 我已更新您的答案以显示选中的单选按钮。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多