Снимите флажок (который сохраняет состояние в базе данных) в PHP - PullRequest
0 голосов
/ 06 марта 2012

У меня есть флажок, который сохраняет свое состояние (проверено / не проверено) в базе данных MySQL. Например, есть один на https://encrypted.coxnetworks.co.uk/school/includes/Checkboxes/Monday1/checkbox.php (он защищен паролем).

Код на странице

<form id='checkbox' method="post" action='/school/includes/Checkboxes/Monday1/checkbox.php'><!-- php: get the name+location of the webpage -->
    <input type="hidden" name="confirm" value="1"> <!-- give confirm a value -->
    <input type="checkbox" checked name="checkbox" value="1" onclick="document.forms['checkbox'].submit()"/> <!-- submit the form when checkbox is clicked -->
</form>

Так что он использует JavaScript для публикации в PHP. Однако я хочу иметь возможность нажать одну кнопку, чтобы запустить скрипт, чтобы снять с них нагрузку. Как я мог это сделать?

Ответы [ 3 ]

0 голосов
/ 06 марта 2012

Я бы порекомендовал использовать jQuery. Это позволит вам использовать простой скрипт вроде:

$('input[type=checkbox].uncheck').attr('checked',false);

Это сняло бы все флажки с классом "uncheck".

Вы можете найти jQuery по адресу:

http://jquery.com/

0 голосов
/ 06 марта 2012

Что-то в пределах

только для javascript:

function checkAll(field)
{
for (i = 0; i < field.length; i++)
    field[i].checked = true ;
}

function uncheckAll(field)
{
for (i = 0; i < field.length; i++)
    field[i].checked = false ;
}

или представление jquery может выглядеть так:

$(".fieldClass").attr("checked", "checked"); // make checkbox or radio checked 
$(".fieldClass").removeAttr("checked"); // uncheck the checkbox or radio

это просто для проверки / снятия отметкизаметьте ... публикация данных, которые вы будете обрабатывать, как вы делаете сейчас, я полагаю.

0 голосов
/ 06 марта 2012

Вам не нужно несколько форм, вы можете сделать это с помощью AJAX jQuery:

$(function() {
   $('input.save_state').change(function)() {
      $.ajax({
         url: '/path/to/controller',
         type: 'POST',
         // Send both the ID and the boolean value
         data: 'id='+$(this).attr('id')+'&val='+$(this).val(),
         success: function() {
            // show success message if necessary
         }
      });
   });
   $('button.wipe_all_states').change(function)() {
      $.ajax({
         url: '/path/to/controller',
         type: 'POST',
         // Because you're resetting everything, you don't need to send IDs or values
         success: function() {
            // show success message if necessary
         }
      });
   });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...