Q&A

exec_json 사용방법을 알고 싶습니다.

2023.06.21 10:51
1,246
0
CMS/프레임워크 Rhymix 2.1
개발 언어 PHP 8.0

관리자 페이지에 직접 접속하지 않고, 레이아웃 혹은 위젯 단에서 선택한 회원을 삭제 하고 싶습니다.

 

관리자 페이지의 회원 삭제 처리하는 부분을 확인해보니

 

{
"error_return_url": "/index.php?module=admin&act=dispMemberAdminList",
"mid": "",
"ruleset": "updateSeletecdMemberInfo",
"module": "member",
"act": "procMemberAdminSelectedMemberManage",
"success_return_url": "/index.php?module=admin&act=dispMemberAdminList",
"xe_validator_id": "modules/member/tpl/1",
"member_srls[]": "1269",
"message": "",
"type": "delete",
"_rx_csrf_token": "xxxxxxxxxxxxxxxxxxxx"
}

 

위와 같은 요청형식으로 form을 전송하여 회원 삭제를 진행한다는것을 알게 되었습니다.

 

 

새로고침 없는 댓글 삭제 (exec_json) 코드를 참조하여

function delMember() {
var member_srls = '1270';
exec_json('member.procMemberAdminSelectedMemberManage', { member_srls: member_srls, type: 'delete', ruleset: 'updateSeletecdMemberInfo' }, function(r) {
console.log (r);
});
}

 

위와 같은 형식으로 수정하여 요청 해보았는데

result.png

 

위와 같이 메세지에는 success 가 반환되지만 실제 해당 회원의 삭제는 이루어지지 않습니다.

exec_json에 대한 정확한 사용 방법을 몰라서.. 댓글 삭제와 비슷하게 요청을 넣어봤는데 이게 아닌가 봅니다 ㅠㅠ

 

 

form submit을 하지 않고 ajax 등을 이용하여 특정한 act 를 실행하는 방법이 궁금합니다.

 

위와 같은 방법으로 회원 삭제를 하는 방법이 궁금하고...

혹시나 특정 act 를 실행하는 관련 예제가 있다면 알고 싶습니다.

댓글 4

  • 2023.06.21 11:04 #1769614
    member_srls 를 배열로 해서 보내줘야 합니다.

    https://github.com/rhymix/rhymix/blob/5c009ba28fa528a47300577809c334b1b4a4d274/modules/member/member.admin.controller.php#L947

    실제로 해당 값을 배열로 인식해서 foreach 돌면서 진행하게 되는데 님이 작성하신 내용은 문자열로 보냈으니 한명이더라도 array으로 묶어서 보내시기 바랍니다.
  • 2023.06.21 11:22 #1769620

    앗.. 배열... 어쩐지 name이 member_srls[] 으로 되어 있다 했더니... 다 이유가 있었군요..

     

    function delMember() {
    var member_srls = ['1270'];
    exec_json('member.procMemberAdminSelectedMemberManage', { member_srls: member_srls, type: 'delete', ruleset: 'updateSeletecdMemberInfo' }, function(r) {
    console.log (r);
    });
    }

     

    위와 같이 배열화 시켜서 전송하니

     

    array.png

     

    정상적으로 삭제가 되네요 ㅎ.. 오늘도 배워갑니다. 

    답변 주셔서 덕분에 잘 해결되었네요.  감사합니다.

  • 2023.06.21 12:23 #1769653
    넘겨주는 form에 대해서 어느정도 이해하고 계시다면 실제로 PHP단에서 값을 어떻게 넘겨받고 실행되는지 디버깅 해보는 방법도 있어요.
  • 2023.06.21 13:03 #1769672
    음.. 디버그라는것은 라이믹스의 디버그 기능을 말씀하시는건가요??
    디버그 기능을 어떻게 쓰는건지 모르겠어서 활용은 못하고 있습니다. ㅠ

    예를 들자면 게시판에서 글작성을 하면 라이믹스 디버그 query 부분에 뭔가 insert 하는 부분이라던가
    남을거라 생각 했는데.. 그런건 아니더라구요...

    현재는 브라우저의 콘솔로그나 (js, jquery 쪽 작업시) 혹은 헤더, 요청, 응답 (form 전송 등) 부분만 활용 하고..
    특정 act 나 view 의 흐름을 볼때는 act 이름 등으로 해당 모듈 컨트롤러 등을 뒤져서 대충 변수 이름 맞춰서 때려 박아보면서 테스트 하고 있는데 디버그 사용방법도 배워봐야 겠네요