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 Superglobals PHP While การไหลเวียน PHP For การไหลเวียน PHP ฟังก์ชัน PHP ตัวแปรเมจิก PHP namespaces 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 ค้นหาแบบ Real-time 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

ในตัวอย่างต่อไปนี้เราจะแสดงให้เห็นถึงการค้นหาแบบ real-time, คุณจะได้รับผลการค้นหาที่คุณพิมพ์ข้อมูลในเวลาเดียวกัน

ค้นหาแบบ Real-time ด้วยการค้นหาแบบดั้งเดิมเมื่อเทียบกับข้อดี:

  • เมื่อคุณพิมพ์ข้อมูลก็จะแสดงผลมาจากการแข่งขัน
  • เมื่อดำเนินการต่อการพิมพ์ข้อมูลผลการกรอง
  • หากผลที่มีขนาดเล็กเกินไปคุณสามารถลบตัวอักษรที่จะได้รับช่วงกว้าง

ใส่ในกล่องข้อความด้านล่าง "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), ฟังก์ชั่นนี้จะลบเนื้อหายึด LiveSearch และออกจากฟังก์ชั่น

ถ้ากล่องใส่ไม่ว่างแล้ว 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 ใหม่
  • ผ่านทุก <title> องค์ประกอบเพื่อหาสิ่งที่ตรงกับพระธรรมเทศนาข้อความ JavaScript
  • ตั้ง URL ที่ถูกต้องและชื่อ "$ ตอบสนอง" ตัวแปร หากพบมากกว่าหนึ่งการแข่งขันการแข่งขันทั้งหมดจะถูกเพิ่มให้กับตัวแปร
  • หากไม่มีการแข่งขันพบใส่ตัวแปร $ Response to "ไม่มีข้อเสนอแนะ"