誰かがis_managerチェックボックスのステータスを変更したときに、その1つのフィールドに対してAJAXチェックを行うことができます。この例では JQuery を使用します。
Zend_Form_Element_Checkbox で設定:
$is_manager->setAttrib('onchange', 'checkValue(this)');
あなたがJSを持っているよりも:
<script language = "Javascript">
function checkValue(object){
var is_manager = $(object).is(':checked') ? 1 : 0;
jQuery.ajax({
url: '/default/index/ajax', //modul/controller/action
type: 'POST',
data: {is_manager: is_manager},
dataType: "json",
success: function(result){
if(result.status != 'OK')
alert(result.message);
}
});
}
</script>
IndexController では、ajaxAction() はリクエストを取得し、JSON レスポンスを送信する必要があります。
public function ajaxAction(){
$this->view->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
$is_manager = $this->_getParam('is_manager');
// DO THE OTHER STUFF/validation AND LOGIC HERE
// ...
// OR set success message and status = OK
$results = array(
'status' => 'error',
'message' => 'You will overwriting existing manager!'
);
$this->_response->setBody(json_encode($results));
}