AJAX ASP/PHP の例
AJAX は、より動的なアプリケーションを作成するために使用されます。
AJAX ASP/PHP の例
次の例は、ユーザーが入力ボックスに文字を入力したときに Web ページが Web サーバーとどのように通信するかを示します。 下の入力ボックスに文字 (A ~ Z) を入力してください:
<html><!DOCTYPE html> <html> <head> <script> function showHint(str) { var xmlhttp; if (str.length==0) { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","/try/ajax/gethint.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <h3>Start typing a name in the input field below:</h3> <form action=""> First name: <input type="text" id="txt1" onkeyup="showHint(this.value)" /> </form> <p>Suggestions: <span id="txtHint"></span></p> </body> </html>
分析例 - showHint() 関数
ユーザーが上の入力ボックスに文字を入力すると、関数 "showHint()" が実行されます。この関数は、「onkeyup」イベントによってトリガーされます:
function showHint(str) { var xmlhttp; if (str.length==0) { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (xmlhttp.readyState==4 && xmlhttp.status==200) { document.getElementById("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","gethint.html?q="+str,true); xmlhttp.send(); }
ソースコード分析:
入力ボックスが空 (str.length==0) の場合、この関数は txtHint プレースホルダーの内容をクリアし、関数を終了します。
入力ボックスが空でない場合、showHint() 関数は次のタスクを実行します:
XMLHttpRequest オブジェクトを作成する
サーバー応答の準備ができたら関数を実行する
リクエストをサーバー上のファイル
-
パラメータ q (入力ボックスの内容を含む) を URL に追加したことに注意してください
AJAX サーバー ページ - ASP および PHP
上記の JavaScript によって呼び出されるサーバー ページこれは「gethint.asp」という名前の ASP ファイルです。
以下では、サーバー ファイルの 2 つのバージョンを作成します。1 つは ASP で書かれ、もう 1 つは PHP で書かれています。
ASP ファイル
「gethint.asp」のソース コードは、名前の配列をチェックし、対応する名前をブラウザに返します:
<% response.expires=-1 dim a(30) 'Fill up array with names a(1)="Anna" a(2)="Brittany" a(3)="Cinderella" a(4)="Diana" a(5)="Eva" a(6)="Fiona" a(7)="Gunda" a(8)="Hege" a(9)="Inga" a(10)="Johanna" a(11)="Kitty" a(12)="Linda" a(13)="Nina" a(14)="Ophelia" a(15)="Petunia" a(16)="Amanda" a(17)="Raquel" a(18)="Cindy" a(19)="Doris" a(20)="Eve" a(21)="Evita" a(22)="Sunniva" a(23)="Tove" a(24)="Unni" a(25)="Violet" a(26)="Liza" a(27)="Elizabeth" a(28)="Ellen" a(29)="Wenche" a(30)="Vicky" 'get the q parameter from URL q=ucase(request.querystring("q")) 'lookup all hints from array if length of q>0 if len(q)>0 then hint="" for i=1 to 30 if q=ucase(mid(a(i),1,len(q))) then if hint="" then hint=a(i) else hint=hint & " , " & a(i) end if end if next end if 'Output "no suggestion" if no hint were found 'or output the correct values if hint="" then response.write("no suggestion") else response.write(hint) end if %>
PHP ファイル
次のコードは PHP で書かれています, 機能は上記のASPコードと同じです。
りー