2010-11-18 7 views
0

cakephp 및 pippoacl 플러그인을 사용하고 있으며 새 역할을 추가 할 수 없습니다.

<?php echo $ajax->submit(
     'submit', 
     array(
      'url' => array('controller' => 'roles', 'action' => 'add'), 
      'before' => 'beforeSubmitAdd();', 
      'complete' => 'completeSubmitAdd(request);' 
     ) 
    ); 
?> 

은 add.ctp를 처음로드되는 때, 나는 뭔가를 print_r의 수 : 내가 플러그인에서 수정하는 것은 내보기 (add.ctp)에서이 같은 제출, 아약스 사용하여 무언가를 만드는 것입니다 컨트롤러. 하지만 위의 아약스 제출은 'before'및 'complete'에 대해서만 javascript를 실행합니다. 나는 방화범을 확인하고 응답은 비어 있습니다. 내 컨트롤러에서

:

function add() {   
    print_r("start"); 
    if (!empty($this->data)) { 
     print_r("add new role");   

     // save new role 
    }  
} 

나는 사용자에 대한 제출 아약스 사용하고 난 새로운 사용자를 추가 아무런 문제가 없습니다. 내가 어디에서 확인해야할지 생각해? 나는 일주일 동안 사용자와 역할 코드를 비교해 왔고, 친구에게 내 코드를 살펴달라고 요청했지만, 여전히 그 원인을 찾을 수는 없다.

미리 감사드립니다. : D

답변

0

나는 Ajax 도우미에 익숙하지 않지만 오랫동안 그것을 사용하지 않아서 내가 무엇을하고 있는지 기억하지 못한다. :)

문제로 돌아 가기. Ajax 주소에서 요청 된 URL이 정확한지 확인 했습니까? 이 작업은 간단해야하지만 잘못된 URL 일 가능성이 있습니다.

보안 구성 요소를 사용하고 있습니까 (심지어 var $ components 변수에 추가하는 경우에도)? 폼의 필드를 어떻게 든 수정하면 빈 화면이 나타날 수 있습니다. 그것을 제거하고 그것없이 작동하는지보십시오.

마침내 jQuery로 어떻게 처리 할 수 ​​있을지 말하고 싶습니다.

$(document).ready(function(){ 
    $('form').live('submit', function(){ //handles also dynamically loaded forms 
     var form = $(this).addClass('loading'); //indicate somehow that the form has been submitted 
     $('#content').load($(this).attr('action'), $(this).serialize(), function(){ 
      form.removeClass('loading'); 
     }); 
    }) 
}); 

이 시스템의 형태에있는 모든을 제출을 처리합니다,하지만 당신은 물론 수정할 수 있습니다

다음 코드는 작업을해야한다.

+0

안녕하세요, Nik! URL이 이미 맞습니다. 역할 컨트롤러의 추가 작업으로 이동해야하며 새 역할을 저장 한 후에 다른 페이지를로드해야합니다. 어떤 일이 발생해도 아무 것도 저장하지 않고 다른 페이지로 이동합니다. 나는 print_r을 시도해 보았고 add를 실행하지 않는다는 것을 알아 냈다. 귀하의 답변 Thx! – Threl