2015-08-25 54 views
1

这是我单选按钮的代码。我想添加条件,当一个单选按钮没有被用户选择,那么它会出来警告有数据是空的。完成后,它会计算总和。单选按钮不能清空

<form action="" method="post"> 
Player 1: 
male <input type="radio" name="gender[1]" value="1"> 
female <input type="radio" name="gender[1]" value="2"> 
<br> 
Player 2: 
male <input type="radio" name="gender[2]" value="1"> 
female <input type="radio" name="gender[2]" value="2"> 
<br> 
Player 3: 
male <input type="radio" name="gender[3]" value="1"> 
female <input type="radio" name="gender[3]" value="2"> 
<br> 
<input type="submit" name="submit" value="submit"> 
</form> 

<?php 
if (isset($_POST['submit'])) 
{ 
    $sum=0; 
    if (isset($_POST['gender'])) 
    { 
     $gender=$_POST['gender']; 
     foreach ($gender as $value) 
      { 
       $sum=$sum+$value; 
      } 
      echo $sum; 

    } 
    else 
    { 
     echo 'you did not choose any genders'; 
    } 
} 
?> 
+0

'回声$ _POST [ '性别']''以上如果(isset($ _ POST [ '提交']))'? –

+0

我不确定我是否理解这个问题,您当前的代码是否无效?此外,请前往[旅游](http://stackoverflow.com/tour)看看:) – Epodax

+0

我的代码工作,但是当我只选择一个,它保持计数总和。当有一个数据为空时,它不会计算总和 – henv

回答

0

如果所有单选按钮被选中,count($_POST['gender'])将3.所以才替换

else 
{ 
    echo 'you did not choose any genders'; 
} 

if (count($_POST['gender']) < 3) { 
    echo 'you did not choose any genders'; 
} 
+0

count sum still show ... – henv

+0

不算'count($ sum)',因为它可以在0到6之间的任何地方。你需要'count($ _ POST ['gender'])' – putvande

+0

好的谢谢。我会尝试 – henv

0

这很简单,你可以写

if(!$_POST['gender']) echo ....; 

,或者,如果你想检查单位置

if(!$_POST['gender'][0] && !$_POST['gender'][1] && !$_POST['gender'][2]) echo ...; 
+0

如果我的数组性别如此之多,我必须写全部? – henv