![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
|
|
自分の練習のため、ajaxライブラリの1つ = JPSpanでHelloWorldスクリプトを作ってみました。 JPSpanはサーバ側とクライアント側をそれぞれ別ファイルとするのがセオリーのようで、このサンプルでもそうしています。 ここでは、それ以外のことはできる限り排除して、JPSpanの雰囲気がわかるようにしたつもりです。 このサンプルの仕様について説明するほどのものではありませんので、ここに設置してありますので、見てくださいな。 サーバ側 server.phpPHPスクリプトです。今回のような単純な場合でもサーバ側はダラダラと長くなっています。 <?php /** * @file * @brief JPSpanのHelloWorldサンプル (サーバ側) */ // JPSpanの読み込み require_once 'JPSpan/JPSpan.php'; require_once JPSPAN . 'Server/PostOffice.php'; // PostOfficeサーバのインスタンス生成 $S = & new JPSpan_Server_PostOffice(); /////////////////////////////////////////////////////// // ここから上は、毎回変わらない /////////////////////////////////////////////////////// クライアント側 index.html
<html>
<head>
<!-- JPSpanのクライアントコードを取得 -->
<script type='text/javascript' src='server.php?client'></script>
<script type='text/javascript'>
// コールバック関数の配列を生成
var MyCallBack = {
gettime: function(result) { idTime.innerHTML = result; }
}
// PHP側クラスの生成
var php_class = new helloworld(MyCallBack);
</script>
</head>
<body>
<p>
<input type=button value="GetTime" onclick="php_class.gettime()">
クリックするとPHPのHelloWorldクラスで定義されているGetTime()メソッドを呼び出します。
</p>
<div id=idTime></div>
</body>
</html>
JPSpanでは、PHP側で定義したクラス名を、JavaScript側で小文字にしてnewする必要があるようです。 JavaScript側では、helloworldクラスをnewするときに、コールバック関数の配列を渡す必要があります。 |
| Copyright©2001-2008 釣ったよ! All Right Reserved. sg@tsuttayo.sytes.net |