【当ブログではアフィリエイト広告を利用しています】

[PHP] CodeIgniter + XAjax

attention この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。

最新版のCodeIgniter から XAjax を利用してみます。
環境は以下の通りです。
CodeIgniter 2.01
XAjax 0.5 standard

コントローラのコンストラクタに以下の記述

		require_once(APPPATH.'libraries/xajax_core/xajax.inc'.EXT);
		$this->xajax = new xajax();
		$this->xajax->register(XAJAX_FUNCTION,array(&$this, "test_func")); <strong>※ここの記述がポイント</strong>
		$this->xajax->processRequest();
		$this->xajax->configure('debug', true);

コントローラにXAjax用の関数を以下のように追記

	public function test_func($text)
	{
		$objResponse = new xajaxResponse();
		$objResponse->assign('div1', 'innerHTML', $text);
		return $objResponse;
	}

ビュー内に以下の関係するコードを追加

<?php $this->xajax->printJavaScript("./"); ?>
<button onclick='xajax_test_func("こんにちは");' >Click Me</button>
<div id="div1">&#160;</div>

「※ここの記述がポイント」の説明
XAjaxのバージョンによって、「register」と「registerFunction」(旧書式)があるが推奨は「register」を使いましょう。
コントローラ内でXAjax用の関数は「$this->test_func」のように呼び出す。
そのため、「array(&$this, “test_func”)」に記述している。
もし、仮にビュー内にXAjax用の関数を記述していれば、直接「”test_func”」で呼び出すことができるのだから、「register(XAJAX_FUNCTION, “test_func”)」このようになる。

ご意見・ご感想をお待ちしております。

いただいた情報は一般公開されません。(入力いただいたメールアドレスにてご返信させていただきます)
また、* が付いている欄は必須項目となりますので、必ずご記入をお願いします。

内容に問題なければ、下記の「コメントを送信する」ボタンを押してください。