2010-09-07 2 views
0

Я создал форму php, которая отправляется по электронной почте. Я пытаюсь сделать условные флажки, так что, если выбран один конкретный флажок, два других не могут быть выбраны, и если выбран один или два из этих двух флажков, первый из них невозможен. Мой код выглядит так:php form условные флажки

<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{ 
      } 
?> 

Когда файл открыт, ничего не происходит. Он по-прежнему позволяет мне выбрать любой или все три из этих флажков. Любые идеи? Спасибо связки.

ответ

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> 

Edit:

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

В настоящее время ваша страница это (вы пропали без вести линию $(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> 
+0

мне нравится где вы идете с этим. Однако, когда я вставил код, он все еще позволяет мне проверять T-bone и NY Strip или Filets – Lars

+0

Какой браузер вы используете? Вы скопировали весь этот блок кода и вставили в ваш .php-файл? –

+0

Просмотреть версии браузера, которые я использовал для тестирования: Firefox 3.6.8, Chrome 6.0.472.53 beta и Internet Explorer 8.0.7600.16385. Возможно, для старых версий браузера приведенный выше код не будет работать так, как ожидалось. Примечание: несовместимость браузера обычно происходит в веб-разработке. Если это так, вышеуказанный код должен быть адаптирован (скучная задача). –

3

Вы должны использовать RADIO BUTTONS и группировать их, а не делать это с помощью флажков.

Радиоустройства по сути поддерживают функцию «когда выбрано два других, которые нельзя выбрать».

+0

я сделал это, но он все еще не работает – Lars

1

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

Смежные вопросы