제목 | 프로토타입을 이용한 자바스크립트에서 CI language파일 사용하기. | ||
---|---|---|---|
글쓴이 | SADBLUE | 작성시각 | 2009/08/26 17:20:08 |
|
|||
단순 한글 페이지에서는 그닥 쓸모 없을 수 있는 간단한 팁입니다. 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) | ||
없음 |