CI 코드

제목 프로토타입을 이용한 자바스크립트에서 CI language파일 사용하기.
글쓴이 SADBLUE 작성시각 2009/08/26 17:20:08
댓글 : 0 추천 : 0 스크랩 : 0 조회수 : 13844   RSS
단순 한글 페이지에서는 그닥 쓸모 없을 수 있는 간단한 팁입니다.
MY_Language에 있는 배열을 ajax call로 json형식으로 받아서 쓰게 됩니다.

1. MY_Language파일을 만듭니다.
<?php
class MY_Language extends CI_Language
{
    function MY_Language()
    {
        parent::CI_Language();
    }

    function getMessages()
    {
        return $this->language;
    }
}

?>

2. controller 를 만듭니다.
class Message extends MY_Controller
{
    protected $m_Message = "error"; // default language page

    function Message()
    {
        parent::MY_Controller("");

        if ($this->input->post("message") != FALSE)
            $this->m_Message = $this->input->post("message");
    }

    function index()
    {
        $this->getmessage();
    }
    function getmessage()
    {
        $this->lang->load($this->m_Message, $this->cookielib->getLanguage());
       
        echo(json_encode($this->lang->getMessages());
    }
}

?>

3. js code입니다.
var validateMessage = Class.create();
validateMessage.prototype = {
    m_Messages : null,
    m_Buffer : null,

    initialize : function (pValue)
    {
        if (pValue ==null) pValue = "error";

        this.loadData(pValue);

        this.m_Messages = eval('(' + m_Buffer.result + ')');
    },

    loadData : function(pValue)
    {
        new Ajax.Request(messageUrl, {
            asynchronous: false,
            parameters: $H({'message': pValue}),
            method: "post",
            onSuccess: function(xmlHttp)
            {
                try
                {
                    this.m_Buffer = eval('(' + xmlHttp.responseText + ')');
                    return true;
                }
                catch(E)
                {
                    alert("Message Load Fail : " + xmlHttp.responseText);

                    return false;
                }
            },
            onFailure : function (request)
            {
                alert("Message Request Fail");
                return false;
            }
        });
    },

    getMessage : function(pValue)
    {
        if (this.m_Messages == null) return "Message Data is null.";
        else {
            if(this.m_Messages[pValue] != undefined) {
                return this.m_Messages[pValue].replace(/'/g, "'").replace(/\/n/g, "\n");
            } else {
                return '['+pValue+']Message Data is null.';
            }
        }
    }
};

태그 language,prototype
 다음글 flexigrid + CI (1)
 이전글 [예제] 폼검증 필드배열 사용하기 (3)

댓글

없음