누군가가 is_manager의 상태를 변경하면 해당 필드에 대해 AJAX 검사를 수행 할 수 있습니다. 나는이 예제에서 JQuery를 사용한다. Zend_Form_Element_Checkbox에
설정 :
$is_manager->setAttrib('onchange', 'checkValue(this)');
당신이 가진 것보다 JS : 인 IndexController ajaxAction (에서
<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>
)의 요청을 얻고 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));
}
관리자를 덮어 쓸지 결정하는 숨겨진 필드는 어떻습니까? 다른 사용자가 관리자 인 경우 확인란을 선택 취소하고 숨겨진 입력을 true로 설정합니다. 다시 선택하면 덮어 씁니다. – undefined
Zend_Form을 사용하여 해당 양식을 만드십니까 ?? Zend_Form_Validate를 사용하여 입력의 유효성을 검사합니까? 그래서 당신은 AJAX request ant를 실행하여 $ form-> isValid()를 요청하고 JSON에 의한 응답을 반환 할 수 있습니다. – tasmaniski
@tasmaniski 네, zend_form zend validators를 사용합니다. 좀 더 자세히 묘사 해 줄 수 있습니까? 10 배! – maephisto