Latest web development tutorials
×

PHP コース

PHP コース PHP 簡単な紹介 PHP インストール PHP 文法 PHP 変数 PHP echo/print PHP データの種類 PHP 定数 PHP 文字列 PHP 演算子 PHP If...Else PHP Switch PHP 配列 PHP 配列のソート PHP スーパーグローバル PHP While 循環 PHP For 循環 PHP 関数 PHP マジック変数 PHP 名前空間 PHP オブジェクト指向の

PHP フォーム

PHP フォーム PHP フォーム認証 PHP フォーム - 必要なフィールド PHP フォーム - 確認メールおよびURL PHP 完全なフォームインスタンス PHP $_GET 変数 PHP $_POST 変数

PHP 応用チュートリアル

PHP 多次元配列 PHP 日付 PHP 含みます PHP ファイル PHP ファイルのアップロード PHP Cookie PHP Session PHP E-mail PHP セキュリティ E-mail PHP Error PHP Exception PHP フィルタ PHP 高度なフィルタ PHP JSON

PHP 7 新機能

PHP 7 新機能

PHP データベース

PHP MySQL 簡単な紹介 PHP MySQL 接続 PHP MySQL データベースの作成 PHP MySQL データテーブルを作成します。 PHP MySQL データを挿入 PHP MySQL 複数のデータの挿入 PHP MySQL プリペアドステートメント PHP MySQL データを読みます PHP MySQL WHERE PHP MySQL ORDER BY PHP MySQL UPDATE PHP MySQL DELETE PHP ODBC

PHP XML

XML Expat Parser XML DOM XML SimpleXML

PHP & AJAX

AJAX 簡単な紹介 AJAX PHP AJAX データベース AJAX XML AJAX 実時間探索 AJAX RSS Reader AJAX 投票

PHP リファレンスマニュアル

PHP Array PHP Calendar PHP cURL PHP Date PHP Directory PHP Error PHP Filesystem PHP Filter PHP FTP PHP HTTP PHP Libxml PHP Mail PHP Math PHP Misc PHP MySQLi PHP PDO PHP SimpleXML PHP String PHP XML PHP Zip PHP Timezones PHP 画像処理 PHP RESTful

リアルタイム検索のPHP AJAXの例

AJAXは、より親しみやすい、よりインタラクティブな検索体験をユーザーに提供することができます。


AJAXのLive Search

以下の例では、我々はあなたが同時にデータを入力すると、検索結果を得ることができ、リアルタイム検索のデモンストレーションを行います。

多くの利点と比較して従来の検索とリアルタイム検索、:

  • あなたがデータを入力すると、それは試合の結果が表示されます
  • データ、フィルタ結果を入力して継続すると
  • 結果が小さすぎる場合は、より広い範囲を取得する文字を削除することができ

、HTMLページを含む検索「HTML」の下のテキストボックスに入力します。

XMLファイル内の上記の結果の例( links.xmlが見つけるために)インチ この例では、小型でシンプルなようにするには、我々は唯一の6の結果を提供します。


例を説明 - HTMLページを

上記の入力ボックス文字でユーザーが「showResult()」関数を実行する場合。 この関数は、「onkeyupの「トリガーイベントで構成されています。

<html>
<head>
<script>
function showResult(str)
{
	if (str.length==0)
	{ 
		document.getElementById("livesearch").innerHTML="";
		document.getElementById("livesearch").style.border="0px";
		return;
	}
	if (window.XMLHttpRequest)
	{// IE7+, Firefox, Chrome, Opera, Safari 浏览器执行
		xmlhttp=new XMLHttpRequest();
	}
	else
	{// IE6, IE5 浏览器执行
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	xmlhttp.onreadystatechange=function()
	{
		if (xmlhttp.readyState==4 && xmlhttp.status==200)
		{
			document.getElementById("livesearch").innerHTML=xmlhttp.responseText;
			document.getElementById("livesearch").style.border="1px solid #A5ACB2";
		}
	}
	xmlhttp.open("GET","livesearch.php?q="+str,true);
	xmlhttp.send();
}
</script>
</head>
<body>

<form>
<input type="text" size="30" onkeyup="showResult(this.value)">
<div id="livesearch"></div>
</form>

</body>
</html>

ソースは説明しました:

入力ボックスが(str.length == 0)空の場合、この関数は、ライブサーチプレースホルダのコンテンツをクリアし、機能を終了します。

入力ボックスが空でない場合、showResult()は、次の手順を実行します。

  • XMLHttpRequestオブジェクトを作成します。
  • サーバが応答を実行する準備ができているときに関数を作成します。
  • リクエストを送信するために、サーバー上のファイル
  • そのURLパラメータの終わりを(入力ボックスが含まれています)(Q)に追加することに注意してください。

PHPファイル

このページを呼び出すJavaScriptを介して、上記サーバは、「livesearch.php「PHPファイルと呼ばれています。

検索文字列のタイトルに一致する「Livesearch.php」のソースコード検索のXMLファイルは、その結果を返します。

<?php
$xmlDoc=new DOMDocument();
$xmlDoc->load("links.xml");

$x=$xmlDoc->getElementsByTagName('link');

// 从 URL 中获取参数 q 的值
$q=$_GET["q"];

// 如果 q 参数存在则从 xml 文件中查找数据
if (strlen($q)>0)
{
	$hint="";
	for($i=0; $i<($x->length); $i++)
	{
		$y=$x->item($i)->getElementsByTagName('title');
		$z=$x->item($i)->getElementsByTagName('url');
		if ($y->item(0)->nodeType==1)
		{
			// 找到匹配搜索的链接
			if (stristr($y->item(0)->childNodes->item(0)->nodeValue,$q))
			{
				if ($hint=="")
				{
					$hint="<a href='" . 
					$z->item(0)->childNodes->item(0)->nodeValue . 
					"' target='_blank'>" . 
					$y->item(0)->childNodes->item(0)->nodeValue . "</a>";
				}
				else
				{
					$hint=$hint . "<br /><a href='" . 
					$z->item(0)->childNodes->item(0)->nodeValue . 
					"' target='_blank'>" . 
					$y->item(0)->childNodes->item(0)->nodeValue . "</a>";
				}
			}
		}
	}
}

// 如果没找到则返回 "no suggestion"
if ($hint=="")
{
	$response="no suggestion";
}
else
{
	$response=$hint;
}

// 输出结果
echo $response;
?>

JavaScriptが任意のテキスト(すなわち、strlenを($ qを)> 0)を送信する場合、発生します。

  • 新しいXML DOMオブジェクトにXMLファイルをロードします
  • 一致するテキストJavaScriptの説教を見つけるためにすべての<title>要素を介して、
  • 正しいURLとタイトル "$応答"変数を設定します。 それは複数の一致が見つかった場合は、すべての一致を変数に追加されます。
  • 一致が見つからない場合、「示唆」に$応答変数を置きます。