<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孩子,父亲和母亲,当用户点击任何一个单选按钮时,我已经为父亲,母亲和孩子分配了一些值。当我点击父亲时,它向我显示结果,但当我点击母子按钮时,它什么也没显示。请有人帮我.
更改此行:
$h=$_POST['r'];
自:
$h=trim($_POST['r']); #this to trim off white spaces you have accidently put on values of radio buttons.
你在"母亲"和"孩子"中有一个空格
在"母亲"和"父亲"的值中有一个空格。
"母亲"!="母亲"和"父亲"!="父亲"删除空格,您的代码将起作用。
问题是在你的 HTML: 孩子和母亲的值标签中,你最后有一个空格:value="kid "
但你将提交的POST
与字符串 mother
/kid
AS 进行比较,最后没有空格,所以它失败了。
我会删除您的值标签中的跟踪空间。使脚本正常工作的其他方法是在比较字符串中添加空格或在比较之前使用 trim
-函数。 trim
删除字符串的所有标题/尾随空格。
问题是,你把空格字符放在母亲和孩子之后。代替"母亲",您可以使用"母亲",它会起作用。我不明白你为什么重复同样的条件
if(!empty($_POST['r']) || !empty($_POST['r']))
您还可以为此类控件使用开关大小写,它使代码更有条理。您可以在此处找到一个简单的示例和信息:http://php.net/manual/en/control-structures.switch.php