제목 | ci 에서 ajax 사용시 [초보ㅡㅡ;] | ||
---|---|---|---|
글쓴이 | iko | 작성시각 | 2012/12/23 11:14:19 |
|
|||
글을 썻다가 뭔가 생각이 나서 지웠다가 다시 쓰네요..ㅡㅡ;;; ajax call 후에 컨트롤러에서 지정한 view파일때문에 화이어버그 콘솔 응답을 보면 view파일 처음부터 끝까지 전부 읽어버리는데 view파일없이 컨트롤러에서 $data만 받고싶은데 어떻게 해야할까요... 아시는분 부탁드립니다. 감사합니다 꾸벅. |
|||
다음글 | 게시판 만들고 있는데요 컨트롤러가 너무 길어져서 문의드... (2) | ||
이전글 | controller와 model-query 질문입니다.... (3) | ||
샤엠
/
2012/12/23 11:36:52 /
추천
0
|
iko
/
2012/12/23 13:04:08 /
추천
0
답변 감사합니다.
조건문걸어서 ajax요청시에는 data만 보내도록 했는데 echo json_encode($data) 이렇게 하고 자바스크립트에서는 어떻게 파싱해야하는지 모르겠어요. $data에는 array,string 이것저것 짬뽕해서 들어있구요. json2html 플러그인을 써보려고하는데 잘 안되고 그러네요..ㅡㅡ;;;; 더 시도해봐야겠습니다. 감사합니다~ |
iko
/
2012/12/23 15:25:44 /
추천
0
$a = $this->load->view("ajax_return_html",$data);
echo $a; function(data) { $("#container").html(data); } 그냥 요렇게 필요한부분을 html로 만들어서 리턴해도 되네요. 결과는 기존에 페이지전부를 다 읽던것보다 훨신 빨라졌어요. json은 아직 초보에겐....ㅠㅠ |
닥스훈트
/
2012/12/25 03:37:27 /
추천
0
에.. 이거 코드 구현해서 보여드리긴 좀 그렇고... ^^;
일단 ajax로 data 받는 DOM 부분만 따로 빈 div 로 구현해놓고 그 부분(request 보냈을때 receive 하는 div 부분)의 view를 따로 또 구현해놓습니다. 그러니까 원래의 view + 추가 데이터 받는 부분의 view를 이렇게 두개 구현해 놓는거죠. 그다음 jquery 같은 것으로 div 에 원래 view에 데이터 받는 부분의 view를 덧붙이면 됩니다. |
컨트롤러에서 원하는 데이터만 출력시키도록 조건문을 걸어도 되고
ajax 요청 응답을 할 수 있도록 응답함수를 따로 설정하여 내 보내야 합니다.
정리하자면 view 파일이 파서되지 않도록 해야합니다.;;
위에서 말한것처럼 ajax 요청을 받으면 조건문으로 걸러서 view 파일이 실행되지 않도록 해야 합니다.
ajax 응답이 내보내지게 될 경우 내 보낸후 return 으로 중단시켜 view 파일이 실행되지 않도록 하거나;;
방법은 많은 것 같습니다.
저의 경우에는 ajax 에 대한 응답은 따로 컨트롤러 메소드로 정의해서 요청에 대한 응답만 보내도록 합니다.
도움이 되셨으면 합니다.