AJAX 中国語リファレンスマ...login
AJAX 中国語リファレンスマニュアル
著者:php.cn  更新時間:2022-04-12 16:00:57

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)
{// IE7 以降、Firefox、Chrome、Opera、Safari のコード
=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function( )
{
if (xmlhttp.readyState==4 && ).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)
'配列に名前を入力します
a(1)="アンナ"
a(2)="ブリタニー"
a(3)="シンデレラ"
a(4)="ディアナ"
a(5)="エヴァ"
a(6)="フィオナ"
a(7)="グンダ"
a(8)="ヘゲ"
a( 9)="インガ"
a(10)="ジョハンナ"
a(11)="キティ"
a(12)="リンダ"
a(13)="ニーナ"
a(14)="オフィーリア"
a(15)="ペチュニア"
a(16)="アマンダ"
a(17)="ラケル"
a(18)="シンディ"
a(19)="ドリス"
a(20) )="イブ"
a(21)="エビータ"
a(22)="スンニヴァ"
a(23)="トーベ"
a(24)="ウンニ"
a(25)="ヴァイオレット"
a(26)="ライザ"
a(27)="エリザベス"
a(28)="エレン"
a(29)="ウェンチェ"
a(30)="ヴィッキー"

' URL からの q パラメータ
q=ucase(request.querystring("q"))

'q>0 の長さの場合、配列からすべてのヒントを検索
if len(q)>0 then
    ヒント=""
    i=1 ~ 30 の場合
          if q=ucase(mid(a(i),1,len(q))) then
                if ヒント="" then
                      ヒント=a(i)
                それ以外
                      ヒント=ヒント & " , " & a(i)
                終了したら
          終了したら
    next
end if

'ヒントが見つからなかった場合は「提案なし」を出力します
'または正しい値を出力します
ifヒント="" then
    response.write("提案なし")
else
    response.write(ヒント)
end if
%>


PHP ドキュメント

次の代コード用 PHP 記述、上の ASP 代コード機能は同じです。

<?php
// 配列に名前を埋めます
$a[]="Anna";
$a[]="ブリタニー";
$a[]="シンデレラ";
$a[]="ダイアナ";
$a[]="エヴァ";
$a[]="フィオナ";
$a[]="ガンダ";
$a[]="ヘゲ";
$a[]="インガ";
$a[]="ヨハンナ";
$a[]="キティ";
$a[]="リンダ";
$a[]="ニーナ";
$a[]="オフィーリア";
$a[]="ペチュニア";
$a[]="アマンダ";
$a[]="ラケル";
$a[]="シンディ";
$a[]="ドリス";
$a[]="イブ";
$a[]="エビータ";
$a[]="サンニバ";
$a[]="トーベ";
$a[]="ウンニ";
$a[]="バイオレット";
$a[]="リザ";
$a[]="エリザベス";
$a[]="エレン";
$a[]="ウェンチェ";
$a[]="ヴィッキー";

// URL から q パラメータを取得します
$q=$_GET["q"];

//q>0 の長さの場合、配列からすべてのヒントを検索
if (strlen($q) > 0)
  {
    $ヒント="";
    for($i=0; $i       {
      if (strto lower($q)==strto lower(substr($a[$i],0,strlen($q))))
            {
            if ($hint=="")
                  {
                  $ヒント=$a[$i];
                  }
            それ以外
                  {
                  $hint=$hint." , ".$a[$i];
                  }
            }
      }
  }

// ヒントが見つからなかった場合は出力を「提案なし」に設定します
// または正しい値に設定します
if ($hint == "")
  {
  $response="提案なし";
  }
その他
  {
  $response=$hint;
  }

//レスポンスを出力します
echo $response;
?>