KennyQiのPHPメモと息抜きブログ
KennyQi(ケニーチー)のブログへようこそ
Web制作 PHP開発のメモと息抜きブログ
ウェブ開発・デザイン・Nucleusのメモや旅日記などを綴っています
PHPからAjaxのjQueryを使う~Pquery
2009年09月26日 | PHP | Posted by: kennyqi
| 2655 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
0人中、0人(50.00%)がよい記事だとと投票しています。
| この記事はどうですか? | : 0 | : 0 |
Search
Categories
Tags
New Comments
08/18 17:48:30
kennyqi
お役に立ててうれしいです!>>
07/29 10:29:40
jun
お邪魔しました☆の間違いです。失礼いたしました!>>
07/29 10:28:41
jun
ミュクルを聞く方法を探していたらこちらにお邪魔した☆最近韓...>>
03/23 09:52:56
kennyqi
Google撤退を発表しちゃいましたね。 今後、活動拠点を香港...>>
11/26 09:22:28
kennyqi
CPUの稼働率、 DBとWebサーバを分けたら落ち着きました^^;>>
Archives
カテゴリ別記事リスト
8月, 2010
6月, 2010
4月, 2010
3月, 2010
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
携帯 | PHP | Google | MySQL | テンプレート | Nucleus | Softbank | HDD | メールサーバ | CentOS5 | UTF-8 | AU | Postfix | Apache | CentOS4 | 文字化け | エラー | SEO | NIC | CentOS
New Comments
08/18 17:48:30
kennyqi
お役に立ててうれしいです!>>
07/29 10:29:40
jun
お邪魔しました☆の間違いです。失礼いたしました!>>
07/29 10:28:41
jun
ミュクルを聞く方法を探していたらこちらにお邪魔した☆最近韓...>>
03/23 09:52:56
kennyqi
Google撤退を発表しちゃいましたね。 今後、活動拠点を香港...>>
11/26 09:22:28
kennyqi
CPUの稼働率、 DBとWebサーバを分けたら落ち着きました^^;>>
Archives
カテゴリ別記事リスト
8月, 2010
6月, 2010
4月, 2010
3月, 2010
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テンプレート
» 携帯絵文字一覧
» 無料ロゴメーカー