CI 묻고 답하기

제목 [ajax+CI]봐주시면 감사하겠습니다. CI 초보입니다. 전체 설계를 이렇게 했는데, 맞는지 모르겠습니다.
글쓴이 피스트 작성시각 2012/08/26 16:08:48
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 20684   RSS
기존에는 제가 php 다른 팀원이 js,jquery,html 작업을 각각 따로하면서 통합하는 형태로 했었는데요,
이번 프로젝트에 처음 CI를 공부해서 사용해보려고하는데 전체 구조가 이렇게 설계하는게 맞는것인지 감이 안와서
질문드립니다.

이전 프로젝트에서는 html파일 따로 php 파일 따로만들어서 XMLHttpRequest 객체를 생성하고 자바스크립트 및
jquery로 ajax 함수를 코딩하여 사용하였습니다.


myAjax_funcion.js 내 ajax 구현 함수:

function user_login() {
var URL= "./login.php?loginId="+id + "&loginPassword=" + password + "&loginstate=" + loginstate;
myReq.open("GET", URL, true);
myReq.onreadystatechange = getLoginResponse;
myReq.send(null);


이런식으로 자바스크립트 ajax function->서버에 있는 php 파일로 인자를 넘겨주고
php 파일에서 xml 또는 json 데이터를 리턴해주는 식으로 작업을 해왔는데요

CI에서도 똑같이 작업하면 되나요?(물론 계속 게시판 검색 및 구글링 하고있습니다)
이를테면


우선 index.php 파일이 있는 폴더에 asset 폴더를 만들어서 js 파일과 css 파일 및 jquery 파일을 넣구  views 폴더에는
html 파일으로 홈페이지화면을 구현합니다.

html파일내에서는 asset폴더에 있는 js 파일 및 jquery 파일을 include 하고,
js파일에서는 ajax function을 날코딩하던, jquery로 구현합니다.

ajax function에서는 test.com/class/ajax/ 와 같이 CI 주소로
인자를 넘겨주는 로직을 생성하고 ajax 요청 후 controller에서는 이를 받아 view로 보내줍니다.

view에서는 xml 또는 json 템플릿으로 데이터를 다시 리턴하고 이를 다시 js파일 내의 ajax 콜백함수가 받아 이를 처리 및 html 화면에 반영.

즉 controller 에 있는 ajax_xxx.php 파일과 model의 xxx.php 파일에서 모든 ajax 요청을 처리하고 view 폴더에는
화면 html 파일과 xml/json 을 리턴해주는 php 파일이 존재합니다.  asset 폴더에는 ajax function 구현 및 html 페이지에 결과를
반영하는 js 파일들이 있습니다.


질문
 1) 홈페이지 특성상 왠만한 사용자 요청은 모두 ajax로 구현, 서버와 클라이언트 통신할 예정인데
    view 폴더에는 예제들은 모두 php 확장자 파일만 있던데.. 이유가 있나요? html 확장자 파일을 사용하여도 상관없나요?

 2) 어떤 예제들은 ajax를 사용하기 위해 설치를 하는 부분이 있던데( http://www.codeigniter-kr.org/source/view/6/page/5/q/ajax
   그냥 쓰면 되는 것이 아니라 ajax를 사용하기 위한 어떤 설치및 세팅이 필요한가요?
 
 3) 위와 같은 로직설계가 옳을 경우, 그냥 날코딩 대비 CI가 구현상의 어떠한 절차를 줄여주는건지 감이 잘안옵니다. 똑같지 않나요?ㅠ(오히려 더 복잡해진듯한..) 아직 이해가 부족한것 같은데,, 설명 부탁드립니다.


긴 글 읽어주셔서 감사하고, 답변 부탁드립니다.
 
 다음글 실행이 안됩니다 한번 봐주세요 (2)
 이전글 URL Pattern Session check문의.

댓글

변종원(웅파) / 2012/08/26 22:16:52 / 추천 0
구현방식은 동일합니다. 포럼소스 받아서 게시물 뷰 부분 보시면 댓글 입력부분이 ajax로 되어 있습니다.
구현 형태를 보시면 기존 코딩에서와 방식은 동일한 것을 보실 수 있습니다.
피스트 / 2012/08/26 23:46:20 / 추천 0
웅파님 답변감사드립니다
낮 사이에 간단한 테스트로 jquery를 이용한 ajax 를 구현 완료 하였습니다.

html은 쓸수가 없는게 맞나요? views 폴더에 들어가는 파일은 모두 php 이여야만 controller에서 인식하는것같던데.. 
kaido / 2012/08/27 08:36:50 / 추천 0
 html 사용 가능 합니다.
전 그냥 html 로 쓰고 있습니다만 html 로 하면 귀찮은 점이 php 삽입 부분이 php 로 나타나지 않아서 불편한 점은 있습니다.

전그냥 뷰는 html 로 구분해 두고 싶어서 쓰고있습니다.

취향 차이 정도가 아닐지.


변종원(웅파) / 2012/08/27 10:49:09 / 추천 0
피스트/ 확장자만 html -> php 로 바꾸는겁니다.
지지고 / 2012/09/29 23:06:29 / 추천 0
메뉴얼 보니까 확장자가 php가 아닌경우 확장자를 붙여주면 뷰로드가 된다고 하더라구요.

뷰파일 : ajax_cal_result.html

$this->load->view('ajax_cal_result.html')

뷰파일에 확장자가 php면 로드시 파일명만 적어주면 되구요.

뷰파일 : ajax_cal_result.php

$this->load->view('ajax_cal_result)

책을 눈으로만 흟었더니 ajax를 어떻게 사용해야하는지... 곧 AJAX 실습해야봐야 겠습니다.