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
実は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
Search
Categories
Tags
New Comments
11/26 09:22:28
kennyqi
CPUの稼働率、 DBとWebサーバを分けたら落ち着きました^^;>>
11/05 02:37:46
kennyqi
この設定をしたら、サーバのCPU稼働率が100%になる時間が出...>>
08/10 11:46:27
kennyqi
2009年8月15日よりAmazonAPIは 電子署名による取得が必須と...>>
01/09 00:43:25
kennyqi
どうもありがとうございます。 写真はわけたほうがみやすい...>>
01/09 00:36:48
Motoo
早速旅行記おめでとうございます。 ただ、画像がおおきすぎ...>>
Archives
カテゴリ別記事リスト
2月, 2010
11月, 2009
9月, 2009
7月, 2009
6月, 2009
4月, 2009
3月, 2009
2月, 2009
1月, 2009
12月, 2008
11月, 2008
10月, 2008
9月, 2008
5月, 2008
3月, 2008
2月, 2008
1月, 2008
12月, 2007
Memo
» フリーWebテンプレート
» 携帯絵文字一覧
» 無料ロゴメーカー
Categories
Tags
海外アプリ | CentOS4 | メールサーバ | Softbank | HDD | MySQL | CentOS | CentOS5 | Postfix | テンプレート | UTF-8 | SEO | AU | エラー | PHP | Apache | Google | 文字化け | 携帯 | Nucleus
New Comments
11/26 09:22:28
kennyqi
CPUの稼働率、 DBとWebサーバを分けたら落ち着きました^^;>>
11/05 02:37:46
kennyqi
この設定をしたら、サーバのCPU稼働率が100%になる時間が出...>>
08/10 11:46:27
kennyqi
2009年8月15日よりAmazonAPIは 電子署名による取得が必須と...>>
01/09 00:43:25
kennyqi
どうもありがとうございます。 写真はわけたほうがみやすい...>>
01/09 00:36:48
Motoo
早速旅行記おめでとうございます。 ただ、画像がおおきすぎ...>>
Archives
カテゴリ別記事リスト
2月, 2010
11月, 2009
9月, 2009
7月, 2009
6月, 2009
4月, 2009
3月, 2009
2月, 2009
1月, 2009
12月, 2008
11月, 2008
10月, 2008
9月, 2008
5月, 2008
3月, 2008
2月, 2008
1月, 2008
12月, 2007
Memo
» フリーWebテンプレート
» 携帯絵文字一覧
» 無料ロゴメーカー