【问题标题】:How to check if radio is checked? [closed]如何检查收音机是否被检查? [关闭]
【发布时间】:2014-04-15 04:28:01
【问题描述】:

发布后如何检查单选按钮是否被选中?

我的单选按钮上的代码

<?php if(isset($_POST['Itemtype']) && $_POST['Itemtype'] == 'Ingredient') echo 'checked="checked" ';?>
<?php if(isset($_POST['Itemtype']) && $_POST['Itemtype'] == 'Miscellaneous') echo 'checked="checked" ';?>

检查我的收音机的代码:

$Itemtype = $_POST["Itemtype"];

if($_POST["Itemtype"] == "Ingredient")
{
    $try2 = "ingred. working";
]
elseif($_POST["Itemtype"] == "Miscellaneous")
{
    $try2 = "misc. working";
}
else
{
    $errormsg = "error5";
}

如果我不选择单选按钮,它会显示“语法错误:未定义的索引项类型”一直瞄准 $Itemtype = $_POST["Itemtype"];

如果我选择单选按钮,它不会返回选中的单选按钮。

任何人都可以帮我解决这个问题。

【问题讨论】:

  • 使用isset ... $checked = isset($_POST['checkbox'])) ? true : false;
  • 和你之前做的一模一样:if(isset($_POST['Itemtype']) &amp;&amp; $_POST['Itemtype'] == 'Miscellaneous')...
  • FDL 是正确的,除非选中一个,否则浏览器甚至不会为一组无线电发送 POST 参数。如果您包含 HTML,则第二个问题可能更容易解决。
  • Radio button checked property 的可能重复项

标签: php radio-button


【解决方案1】:

如果没有勾选单选选项,您将需要使用 isset。

要检查它,单选按钮已被选中(并发布)你可以喜欢这个

if (isset($_POST['Itemtype'])) { // if ANY radio button was ticked at all
  echo $_POST['Itemtype']; // display the 'value' the choice that was ticked.
} else {
  echo "no radio button ticked.";
}

'Itemtype' 需要像这样使用单选按钮引用 name='' 字段。

<input type="radio" name="Itemtype" value="female">Female
<input type="radio" name="Itemtype" value="male">Male

【讨论】:

  • 您的流浪{有语法错误。
  • 此外,您可以使用开关根据 $_POST['Itemtype'] 值在 Matt 回显的点处回显某些内容!
  • 感谢这对我有帮助,但仍然没有返回单选按钮的选中值。我想知道浏览器是否与它有关?
  • 替换 echo $_POST['Itemtype']; $result = $_POST['Itemtype'];那么你可以使用 $result 作为你的返回值。
  • 这是我想出的:if(isset($_POST['Itemtype'])) { $Itemtype = $_POST["Itemtype"]; if($_POST["Itemtype"] == "Ingredient") { $try2 = "ingred. working"; } elseif($_POST["Itemtype"] == "Miscellaneous") { $try2 = "misc. working"; } } else { $errormsg = 'error5'; }
【解决方案2】:
<?  
    $_POST['Itemtype'] = "Ingredient";
    if(isset($_POST['Itemtype'])) {
        $Itemtype = $_POST["Itemtype"]; 
        if($_POST["Itemtype"] == "Ingredient") {
            $try2 = "ingred. working"; 
        }elseif($_POST["Itemtype"] == "Miscellaneous"){
            $try2 = "misc. working"; 
        } 
    } else { $errormsg = 'error5'; }
    echo $try2;
    echo $errormsg;
?>

出于调试原因,我强制使用 Itemtype...这将表明您的逻辑有效...我的问题是您是否在回显您的 $try2....

【讨论】:

  • 我能问一下$_POST['Itemtype'] = "Ingredient";一开始有什么用吗?对不起新北
  • 我这样做是为了让 php 认为它来自表单...您想自己删除它...但是您的逻辑有效,所以如果它不起作用,您有可能您的表单有问题...当您比较值以消除区分大小写的结果时,我会使用 strtolower 或 strtoupper。
  • 我只是使用 $try2 来测试如果 itemtype = 成分是否有效。但我可能会在 itemtype= 成分和杂项下互相处理一些东西。我需要在上面放置另外 2 个 if else 语句。
  • 如果我使用 switch 可以做这样的事情吗? switch ($Itemtype) { case Ingredient: if(isset) { } else { } break; case Misc.: if(isset) { if(isset) { } else { } } else { } break; } 还是我搞砸了? :D 我之前只使用过一次 switch,所以我不确定我在 switch 上做的是否正确
【解决方案3】:

如果用户检查了收音机,网络浏览器只会传递POST 内的值。

如下更新您的代码以检查是否已选择收音机:

if(isset($_POST['Itemtype']))
{
    if($_POST["Itemtype"] == "Ingredient")
    { 
        $try2 = "ingred. working";
    }
    elseif($_POST["Itemtype"] == "Miscellaneous")
    {
        $try2 = "misc. working";
    }
}
else
{
    $errormsg = 'error5';
}

【讨论】:

    猜你喜欢
    • 2015-08-26
    • 2016-05-29
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-08
    • 2021-05-03
    相关资源
    最近更新 更多