2009-10-07 4 views
0

Цель состоит в том, чтобы установить флажок, который при нажатии будет отправлен через сообщение, где я буду обновлять db. Пользователь может проверять назад и вперед, чтобы установить или отключить активный статус.Флажок onChange отправьте проблему, если установлен флажок

Это отлично работает:

<form name='form".$value['id']."' action='./filter_edit.php' method='post'><input type='checkbox' name='checkbox[".$value['id']."]' value='".$newActive."' onclick='document.form".$value['id'].".submit();' /></form> 

Однако, используя код, приведенный выше, окно не появляется проверено.

С приведенным ниже кодом, как только поле будет установлено на активное место, где будет установлен флажок, щелчок, чтобы снять флажок, отправляет, но не отправляет почтовые переменные.

<form name='form".$value['id']."' action='./filter_edit.php' method='post'><input type='checkbox' name='checkbox[".$value['id']."]' value='".$newActive."'"; 
     if($value['active'] == 1) 
      echo " checked='checked'"; 
     echo" onclick='document.form".$value['id'].".submit();' /></form> 

ответ

1

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

1

Я предполагаю, что проблема в том, что Javascript обрабатывается до сам элемент «щелкнул» (если это имеет смысл): то есть форма отправляется до того, как флажок установлен.

Если вы отметили флажок, как указано в Javascript, перед запуском submit, я бы предположил, что это сработает.

2

Непроверенный флажок ничего не отправляет в параметрах сообщения.

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

0

Изменение: : значение =»$ newActive.. "»

Чтобы просто" $ newActive.. "

Я предполагаю, что $ newActive либо = "checked", либо "", чтобы определить, установлен ли флажок.