TIP게시판

제목 CI에서 AJAX를 쉽게 사용해보기
글쓴이 byung82 작성시각 2009/11/23 12:43:47
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 17681   RSS
 CI에서 ajax별로 체크하는것이 귀잖아서 route단위에서 할수 있게 수정해보았습니다.
흠 core를 안걸들고 하려면 아직 메뉴얼을 다 읽어보지 않아서 간단하게 코어 수정으로 일단 진행을 ^^;

일단 IS_AJAX를 정의합니다. 
여기에 검색을 해보니 올리신분이 있어서 그걸 차용합니다.
일단 apllication/config/constants.php 에 아래코드를 추가합니다.
define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
ci님의 내용을 보고 수정합니다.

MY_Router.php를 만들어서 아래코드를 넣고 저장하신후 application/libraries 로 복사합니다.

class MY_Router extends CI_Router
{
        function set_method($method)
        {
                $this->method = IS_AJAX == true ? "{$method}_ajax" : $method;
        }

        function fetch_method()
        {
                if ($this->method == $this->fetch_class())
                {
                          return IS_AJAX == true ? 'index_ajax' : 'index';
                }
                return $this->method;
        }
}
 
그런후 Controller에 정의된 클래스에서 만약 ajax가 index를 호출한다면 index_ajax콜이 됩니다.

태그 ajax
 다음글 CI에서 contenttype별 view를 분리해보기
 이전글 오라클 초보자 설치 (1)

댓글

ci세상 / 2009/11/23 13:26:24 / 추천 0

라우터는 대체,확장이 가능하게 되어 있는데 아래 메뉴얼을 함 참조해 보세요.

http://codeigniter-kr.org/user_guide/general/creating_libraries.html

byung82 / 2009/11/23 15:46:02 / 추천 0
 ci세상님 글 보고 extention으로 처리했습니다.
케이든 / 2009/11/23 15:47:16 / 추천 0
_remap으로 저렇게했엇는데

미쳐 생각하지 못한

라우터 확장이 있엇네요  

두분 감사합니다
ci세상 / 2009/11/23 17:05:57 / 추천 0
유용한 정보 감사드립니다.^^