제목 | 필터 기능 구현 중 동기에서 비동기 방식으로 변경하니, 작동이 안 되네요 | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | 그동안 | 작성시각 | 2019/07/01 10:33:38 |
|
|||
!주말동안 질문 글이 묻힌듯해서 다시 질문 드립니다
게시판 목록 상단에 필터 기능이 복잡하게 있는 걸 구현하고 있는데요. 1번 동기 방식으로 했을때 잘 작동합니다. 2번 비동기 방식으로 하면 동작이 안 되네요. (새로고침이 싫어서 비동기 방식으로)
[증상] - 개발자 선택 --> preview에 개발자만 보여짐(정상) ----> 목록에는 처음화면 그대로 반응 없음 - 뷰 ajax + jquery 코드에 이슈가 있을 것으로 의심
1번. 동기방식 : 정상 동작 [ 뷰 ] //체크박스 값 받아서 컨트롤러로 넘김 <script> $(document).on('change', 'input:checkbox', function() { var job_type = $("input[name=job_type]:checked").map(function () { return this.value }).get().join(); $("#filter_action").submit(); }); </script> // 리턴 받은 data foreach로 돌리기 <?php foreach ($freelancer_list as $lt) { 생략 } 2번 비동기 방식 : 동작 안함 [ 뷰 ] //체크박스 값 받아서 컨트롤러로 넘김 <script> $(document).on('change', 'input[name=job_type]', function() { var job_type = $("input[name=job_type]:checked").map(function () { return this.value }).get().join(); $.ajax ({ url : "/freelancer/freelancer_list", type : "POST", //dataType : "json", data : { job_type : job_type }, success : function(result) { alert("필터가 성공적으로 적용 되었습니다"); }, error : function(request,status,error) { alert(request.status + " code 에러가 발행해서 정상적으로 처리하지 못했습니다"); } }) }); </script> // 리턴 받은 data foreach로 돌리기 <?php foreach ($freelancer_list as $lt) { 생략 }
[컨트롤러] public function freelancer_list() { if ( $this->input->post('job_type', TRUE) ) { $filter_data = array( 'job_type' => $this->input->post('job_type', TRUE) ); $data['master_character_list'] = $this->master_character_m->admin_master_character_list(); $data['master_skill_manage_list'] = $this->master_skill_m->master_skill_manage_list(); $data['freelancer_list'] = $this->Profile_basic_m->freelancer_list($filter_data); $this->load->view('html/freelancer/freelancer_list_v',$data); } }
|
|||
다음글 | 서버 cron tab에서 php파일 실행시 문의드립니다... (5) | ||
이전글 | apache와 nginx를 동시에 사용하는 이유.. (2) | ||
그동안
/
2019/07/01 10:36:44 /
추천
0
- 처음 접속 시 전체 목록이 뿌려지는 건 동기(foreach)로 처리되어 있는데, 이것과 무관하게...필터 적용시 비동기 success 영역에 반복문 돌려서 갱신(비우기+append) 해주는 방식으로 수정하려고 하는데....이 방식이 맞는 건지도 궁금합니다.
|
배강민
/
2019/07/01 10:38:46 /
추천
0
기존 동일한 글로 질문하시고 한분께서 답변을 주셨는데, 글을 삭제하고 동일하게 다시 올리신 이유는 뭔가요? 답변을 하셨던 그분의 노고는 무엇이 되는것인지 모르겠네요. |
그동안
/
2019/07/01 10:54:58 /
추천
0
배강민님, 본문 상단에 사유를 남겼습니다. 답변주신 분의 답변은 제가 댓글에 붙여넣기 할까 하다가 그건 또 아닌듯해서 복사해서 잘 보관하고 있습니다.
|
엽토군
/
2019/07/08 08:46:47 /
추천
0
JS에서 success() 콜백이 알럿 하나인가요? 그렇다변 반응이 없는게 정상이고.. 받은 데이터 html을 실제로 원하는 요소의 innerHTML로 주입해주셔야지요.
그리고 포럼 질문글을 막 삭튀하고 그러시면 안됩니다. 복사 저장이 문제가 아니고 이슈의 이력 트래킹이 안돼 버립니다. |