условные флажки php формы - PullRequest
       5

условные флажки php формы

0 голосов
/ 07 сентября 2010

Я сделал 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 ]

3 голосов
/ 07 сентября 2010

Вам необходимо использовать РАДИО КНОПКИ и группировать их, а не делать это с помощью флажков.

Радиокнопки по своей природе поддерживают функцию "когда один выбран, два других не могут быть выбраны".

1 голос
/ 08 сентября 2010

Следующий код должен сделать это. Он использует 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>

Edit:

Убедитесь, что вы скопировали весь тег script.

В настоящее время на вашей странице есть это (вам не хватает строки $(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>
1 голос
/ 07 сентября 2010

.php файлы не могут быть открыты непосредственно в браузере, как .html. PHP - это серверный язык, а это значит, что ему нужен сервер, на котором должен работать файл php. Вы должны установить виртуальный сервер на вашем компьютере. Если у вас установлена ​​Windows, вы можете использовать WAMP - бесплатную программу для создания виртуального сервера PHP и Apache.

...