отправка формы, когда установлен флажок

есть способ отправить форму, когда установлен флажок?

<form id="formName" action="<?php echo $_SERVER['PHP_SELF'];?>" method="get"> <input type ="checkbox" name="cBox[]" value = "3">3</input> <input type ="checkbox" name="cBox[]" value = "4">4</input> <input type ="checkbox" name="cBox[]" value = "5">5</input> <input type="submit" name="submit" value="Search" /> </form> <?php if(isset($_GET['submit'])){ include 'displayResults.php'; } ?> 

Это то, что у меня есть в настоящее время, но я хотел бы отправить форму без кнопки отправки, когда пользователь проверяет или отменяет флажок. Любая помощь?

В простом JavaScript просто добавьте

 onChange="this.form.submit()" 

в тег формы / ввода.

Да, это возможно.

 <form id="formName" action="<?php echo $_SERVER['PHP_SELF'];?>" method="get"> <input type ="checkbox" name="cBox[]" value = "3" onchange="document.getElementById('formName').submit()">3</input> <input type ="checkbox" name="cBox[]" value = "4" onchange="document.getElementById('formName').submit()">4</input> <input type ="checkbox" name="cBox[]" value = "5" onchange="document.getElementById('formName').submit()">5</input> <input type="submit" name="submit" value="Search" /> </form> 

Добавляя к onchange="document.getElementById('formName').submit()" , вы будете отправлять в любое время, когда будет установлен флажок.

Если вы в порядке с jQuery, это еще проще (и ненавязчиво):

 $(document).ready(function(){ $("#formname").on("change", "input:checkbox", function(){ $("#formname").submit(); }); }); 

Для любого количества флажков в вашей форме, когда происходит событие «change», отправляется форма. Это будет даже работать, если вы динамически создаете больше .on() благодаря .on() .

 $(document).ready( function() { $("input:checkbox").change( function() { if( $(this).is(":checked") ) { $("#formName").submit(); } } ) } ); 

Хотя, вероятно, было бы лучше добавить классы в каждый из флажков и сделать

 $(".checkbox_class").change(); 

так что вы можете выбрать, какие флажки подавать форму, а не все из них делают это.

Я общался с этим около четырех часов и решил поделиться этим с вами.

Вы можете отправить форму, нажав флажок, но странно, что при проверке отправки в php вы ожидаете, что форма будет установлена, когда вы установите или снимите флажок. Но это неправда . Форма устанавливается только тогда, когда вы действительно проверяете флажок, если вы снимите флажок, он не будет установлен. слово, установленное в конце типа ввода флажка, выведет флажок, чтобы проверить флажок, поэтому, если ваше поле проверено, оно должно отражать это, как в приведенном ниже примере. Когда он получает флажок, php обновляет состояние поля, которое приведет к исчезновению слова.

Вы должны выглядеть так:

 <form method='post' action='#'> <input type='checkbox' name='checkbox' onChange='submit();' <?php if($page->checkbox_state == 1) { echo 'checked' }; ?>> </form> 

и php:

 if(isset($_POST['checkbox'])) { // the checkbox has just been checked // save the new state of the checkbox somewhere $page->checkbox_state == 1; } else { // the checkbox has just been unchecked // if you have another form ont the page which uses than you should make sure that is not the one thats causing the page to handle in input otherwise the submission of the other form will uncheck your checkbox // so this this line is optional: if(!isset($_POST['submit'])) { $page->checkbox_state == 0; } }