サーバ側のメソッドの呼び出し
次に、アンカー・タグでイメージを囲み、ユーザがイメージをクリックしたときに呼び出す機能を指定することができます。この場合、新しいページを表示したくないので、タグの href 属性を “.” に設定します。
ユーザがイメージ上をクリックしたときに (HTML 用語で “onClick” イベントが発生するとき)、いくつかのコードを実行するようにします。実行するコードは、<a> タグの onClick 属性を使用して指定します。一般的に、この属性は、ブラウザで実行する JavaScript コードを含みます。
しかしここでは、別の方法で処理をします。代わりに、以下の構文を使用します。
#server( ... )#
これは、Caché サーバ上でコードを実行します。
ブラウザが href 属性によって定義されたリンクをたどらないように JavaScript コード ";return false;" を属性値の最後に付加します。これは、ハイパーリンクが関数を呼び出すときに使用される JavaScript の標準的な方法です。
ShowTimes.csp
<html> <body>
<csp:class encoded=1 super="%CSP.Page,Cinema.Utils">
<csp:query
name="Times"
classname="Cinema.Show"
queryname="ShowTimes"
P1='#(%request.Data("FilmID",1))#'>
<csp:object
name="Film"
classname="Cinema.Film"
objid='#(%request.Data("FilmID",1))#'>
<font> <b>Today's Show Times for #(Film.Title)#</b></font>
<table cellpadding=5> <tr> ... </tr>
<csp:while condition="Times.Next()">
<tr>
<td>#(Times.Get("StartTime"))#</td>
<td>#(Times.Get("TheaterName"))#</td>
<td align="center">
<a href=. onClick="#server(..AddShow(#(Times.GetData(1))#))#;return false;">
<img src="Tickets.gif" width="130" height="39" border="0"
alt="Click to order tickets for this show">
</a>
</td>
</tr>
</csp:while>
</table>
</body> </html>