php表单条件复选框

时间:2010-09-07 19:27:04

标签: php forms conditional checkbox

我已经制作了一个通过电子邮件提交的php表单。我正在尝试创建条件复选框,以便如果选中一个特定复选框,则无法选择其他两个复选框,如果选中这两个复选框中的一个或两个,则第一个复选框不能。我的代码看起来像这样

<p>Ribeye Steak <input type="checkbox" name="Ribeye steak" value="Ribeye Steak"/> </p>
<p>Ribeye Roast (prime rib) <input type="checkbox" name="Ribeye Roast" value="ribeye roast"  /> </p>
<p>Sirloin Steak <input type="checkbox" name="Tenderloin roast" value="Tenderloin roast" /> </p>
<p>T-bone steak  <input type="checkbox" name="T-bone" value="T-bone steak" /> 
or New York Strip steak  <input type="checkbox" name="NY" value="New York Strip" /> 
and/or Tenderloin Filets <input type="checkbox" name="Filets" value="Filets steaks" /> </p>
<?php
if($_GET['T-bone steak'] == 'T-bone steak' AND $_GET['New York Strip'] == 'New York Strip') { 
          echo "You cannot select T-bone steak and NY Stip or Tenderloin. Please select T-bone or NY Strip and/or Tenderloin.";
          } else if($_GET['T-bone steak'] == 'T-bone steak' AND $_GET['Filets steaks'] == 'Filets steaks'){
          echo "You cannot select T-bone steak and NY Stip or Tenderloin. Please select T-bone or NY Strip and/or Tenderloin.";
          }
          else{
          }
?>

文件打开时没有任何反应。它仍然允许我选择任何或所有三个复选框。 有任何想法吗? 谢天谢地。

3 个答案:

答案 0 :(得分:3)

您需要使用RADIO BUTTONS 并对其进行分组,而不是通过复选框进行分组。

Radio Buttons固有地支持“当选择一个时无法选择其他两个”的功能。

答案 1 :(得分:1)

无法直接在浏览器中打开.php文件,例如.html文件。 PHP是一种服务器端语言,这意味着它需要一个运行php文件的服务器。 您必须在计算机上安装虚拟服务器。如果您安装了Windows,则可以使用WAMP,这是一个用于创建PHP和Apache虚拟服务器的免费程序。

答案 2 :(得分:1)

以下代码应该这样做。它使用jQuery来处理复选框的状态。

我在Firefox 3.6.8,Chrome 6.0.472.53 beta和IE 8.0.7600.16385中进行了测试。它在所有这些方面都适合我。

<html> 
<head> 

<script src="http://code.jquery.com/jquery-latest.js"></script>

<title>My Page</title>

<script type="text/javascript">
 $(document).ready(function()
 {
     $('input:checkbox').click(function()
     {
            if ($('#T-bone').is(':checked'))
            {
                $('#NY').attr("disabled", true);
                $('#Filets').attr("disabled", true);
            }
            else
            {
               $('#NY').attr("disabled", false);
               $('#Filets').attr("disabled", false); 
            }

            if($('#NY').is(':checked') || $('#Filets').is(':checked'))
            {
                $('#T-bone').attr("disabled", true); 
            }
            else
            {
               $('#T-bone').attr("disabled", false); 
            }
     });
});
</script>

</head> 

<body> 

<p>Ribeye Steak
<input type="checkbox" name="Ribeye steak" value="Ribeye Steak"/>
</p>

<p>Ribeye Roast (prime rib)
<input type="checkbox" name="Ribeye Roast" value="Ribeye Roast"  />
</p>

<p>Sirloin Steak
<input type="checkbox" name="Tenderloin roast" value="Tenderloin roast" />
</p>

<p>T-bone steak
<input type="checkbox" id="T-bone" name="T-bone" value="T-bone steak" /> 
or New York Strip steak
<input type="checkbox" id="NY" name="NY" value="New York Strip" /> 
and/or Tenderloin Filets
<input type="checkbox" id="Filets" name="Filets" value="Filets steaks" />
</p>

</body>

</html>

修改

确保复制整个脚本标记。

目前您的网页上有这个(您错过了$(document).ready(function()行):

<script type="text/javascript">
{
     $('input:checkbox').click(function()
     {
          if ($('#T-bone').is(':checked'))
          {
               $('#NY').attr("disabled", true);
                        $('#Filets').attr("disabled", true);
          }
          else
          {
               $('#NY').attr("disabled", false);
               $('#Filets').attr("disabled", false); 
          }

          if($('#NY').is(':checked') || $('#Filets').is(':checked'))
          {
               $('#T-bone').attr("disabled", true); 
          }
          else
          {
               $('#T-bone').attr("disabled", false); 
          }
     });
});
</script>

应该有这个:

<script type="text/javascript">
 $(document).ready(function()
 {
     $('input:checkbox').click(function()
     {
            if ($('#T-bone').is(':checked'))
            {
                $('#NY').attr("disabled", true);
                $('#Filets').attr("disabled", true);
            }
            else
            {
               $('#NY').attr("disabled", false);
               $('#Filets').attr("disabled", false); 
            }

            if($('#NY').is(':checked') || $('#Filets').is(':checked'))
            {
                $('#T-bone').attr("disabled", true); 
            }
            else
            {
               $('#T-bone').attr("disabled", false); 
            }
     });
});
</script>