KennyQiのPHPメモと息抜きブログ

KennyQi(ケニーチー)のブログへようこそ
Web制作 PHP開発のメモと息抜きブログ
ウェブ開発・デザイン・Nucleusのメモや旅日記などを綴っています
PHPからAjaxのjQueryを使う~Pquery
2009年09月26日 | PHP | Posted by: kennyqi | 1145 PV
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が呼び出されました!';
}
?>
<html><head>
<!-- jQuery.jsを読込 -->
<script src="js/jquery.js" type="text/javascript"></script>
</head>
<body>
<!-- jQuery呼び出しリンクをPHPで記述 -->
<?=$pquery->link_to_remote("表示",array('url'=>$_SERVER['PHP_SELF'].'?task=hogefunc','update'=>'#viewArea'));?>

<!-- ここにjQueryで呼び出された関数の結果が出力されます -->
<div id="viewArea"></div>

</body>
</html>
 


という感じになります。
link_to_remoteで出力されるリンクは下記のようになります。


<a href="#" onclick='$.ajax({url: "sample.php?task=formAll", success: function(response){$("#formArea").html(response);}, dataType: "html"}); return false;'>表示</a>
 



リンクをクリックしても何も表示されないときは、
PHP側で呼び出したfunctionにエラーがないかを確認してみてください。
このlink_to_remoteで生成したリンクは、
Ajax Eventsのsuccessが呼び出されるようで
HTTP通信が成功したら呼び出され、失敗すると呼び出されないとのこと。

また他にフォームのformタグを呼び出すものもあり、
formで送信したパラメータを元にデータベースの結果を
表示させるとかいうのもできます。
このタグはまたの機会に。^^

なお、PQueryのライセンスはMITライセンスとGPLライセンスを選べます。

参考&ダウンロード先:PQuery – PHP and JQuery

参考:jQuery日本語リファレンス - Ajax/API/Ajax Events

Comments
No comments yet

Add Comment