单选按钮不起作用

时间:2013-09-18 08:16:17

标签: php radio-button

<form method="POST"/>
FATHER<input type="radio" name="r" value="father">
MOTHER<input type="radio" name="r" value="mother ">
KID<input type="radio" name="r" value="kid ">
    <input type="submit" name="submit" value="Submit">
    </form>



<?php
if (isset($_POST['submit']) && $_POST['submit']=='Submit') {
if(!empty($_POST['r']) || !empty($_POST['r']))
    {
        $h=$_POST['r'];
    }else {
        $h='';
    }
if($h =="father" )  
   {
           echo "1";
   } else if($h =="mother" ) {
           echo "2";
   } else if($h =="kid" ) {
           echo "3";
   }
   }

我有3个单选按钮id小孩,父亲和母亲,当用户点击任何单选按钮时,我为父亲,母亲和孩子分配了一些值。当我点击父亲时,它显示了我的结果但是当我点击母亲和孩子按钮时,它没有显示任何内容。请任何人帮助我。

5 个答案:

答案 0 :(得分:3)

更改此行:

$h=$_POST['r'];

要:

$h=trim($_POST['r']); #this to trim off white spaces you have accidently put on values of radio buttons.

答案 1 :(得分:0)

“母亲”和“孩子”中有空格

答案 2 :(得分:0)

你有一个母亲和父亲的价值空间。 “母亲”!=“母亲”和“父亲”!=“父亲”

删除空格,您的代码就可以使用。

答案 3 :(得分:0)

问题在于,在您的HTML:孩子和母亲的价值标签中,您最后有一个空间value="kid "但您将提交的POST与字符串进行比较mother / kid 在最后没有空格,因此失败。

我会删除value-tags中的trailig空间。让脚本工作的其他方法是在比较字符串中添加空格或在比较之前使用trim - 函数。 trim删除字符串的所有标题/尾随空格。

答案 4 :(得分:0)

问题是,你在母亲和孩子之后放置了空间角色。而不是“母亲”,你可以使用“母亲”,它将起作用。我无法理解为什么你在

上重复相同的条件
if(!empty($_POST['r']) || !empty($_POST['r']))

您还可以将switch case用于这种控件,它使代码更有条理。您可以在此处找到一个简单的示例和信息: http://php.net/manual/en/control-structures.switch.php