-
No Comments
PHPからAjaxのjQueryを簡単に使えるクラスがあったので紹介します。
実はAjax、あまり詳しくないんですが、
PQueryというクラスを利用するとPHPで簡単にAjaxが実現できました。
いろいろと使い方があるようですが、簡単で使えそうなのが
Ajaxなリンクをクリックしたら、
そのページ内のdiv で囲った場所に
PHPでechoしたデータが表示される
というものです。使い方は
PHP上で
1) pquery.phpをincludeして
2) クラス呼出
HTML側で
1) jquery.jsを読込
2) PHPでlink_to_remoteを呼出
引数は
link_to_remote(リンクさせるテキスト,jQuery用パラメータ配列)
となります。
という感じです。
HTML側と書きましたがHTMLからPHPを呼び出してjQuery用のリンクを呼出します。
ですので、ここでは同じPHPの中でHTMLも書いてみます。<?php // pquery.phpをinclude include 'lib/pquery.php'; // クラス呼出 $pquery = new PQuery(); $pquery--->ujs = true; // task パラメータがhogefuncのとき if( $_GET['task'] == 'hogefunc' ){ hogefunc(); } // jQueryで呼び出す関数 function hogefunc(){ echo 'JQueryが呼び出されました!'; } ?> <!-- jQuery.jsを読込 --> <script src="js/jquery.js" type="text/javascript"><!--mce:0--></script> <!-- jQuery呼び出しリンクをPHPで記述 --> <?=$pquery--->link_to_remote("表示",array('url'=>$_SERVER['PHP_SELF'].'?task=hogefunc','update'=>'#viewArea'));?> <!-- ここにjQueryで呼び出された関数の結果が出力されます -->という感じになります。
link_to_remoteで出力されるリンクは下記のようになります。<a onclick="$.ajax({url: "sample.php?task=formAll", success: function(response){ $("#formArea").html(response);}, dataType: "html"}); return false;" href="#">表示</a>リンクをクリックしても何も表示されないときは、
PHP側で呼び出したfunctionにエラーがないかを確認してみてください。
このlink_to_remoteで生成したリンクは、
Ajax Eventsのsuccessが呼び出されるようで
HTTP通信が成功したら呼び出され、失敗すると呼び出されないとのこと。
また他にフォームのformタグを呼び出すものもあり、
formで送信したパラメータを元にデータベースの結果を
表示させるとかいうのもできます。
このタグはまたの機会に。^^
なお、PQueryのライセンスはMITライセンスとGPLライセンスを選べます。
参考&ダウンロード先:PQuery – PHP and JQuery
参考:jQuery日本語リファレンス – Ajax/API/Ajax Events





