ล่าสุดการพัฒนาเว็บบทเรียน
×

PHP เกี่ยวกับการสอน

PHP บ้าน PHP แนะนำ PHP ติดตั้ง PHP วากยสัมพันธ์ PHP ตัวแปร PHP Echo / พิมพ์ PHP ชนิดข้อมูล PHP เงื่อนไข PHP ค่าคงที่ PHP ผู้ประกอบการ PHP If...Else...Elseif PHP Switch PHP ในขณะที่ลูป PHP สำหรับลูป PHP ฟังก์ชั่น PHP แถว PHP เรียงลำดับอาร์เรย์ PHP Superglobals

PHP การจัดการ

PHP ฟอร์ม การจัดการ PHP ฟอร์ม การตรวจสอบ PHP ฟอร์ม จำเป็นต้องใช้ PHP ฟอร์ม URL/E-mail PHP ฟอร์ม สมบูรณ์

PHP สูง

PHP อาร์เรย์หลายมิติ PHP วันและเวลา PHP ประกอบด้วย PHP ไฟล์ การจัดการ PHP ไฟล์ เปิด / อ่าน PHP ไฟล์ สร้าง / เขียน PHP ไฟล์ อัปโหลด PHP Cookies PHP Sessions PHP ฟิลเตอร์ PHP Filters สูง PHP ผิดพลาด การจัดการ PHP ข้อยกเว้น

MySQL Database

MySQL ฐานข้อมูล MySQL สัมพันธ์ MySQL Create DB MySQL Create ตาราง MySQL Insert Data MySQL รับ ID เข้าครั้งสุดท้าย MySQL ใส่หลาย MySQL Prepared MySQL Select Data MySQL Delete Data MySQL Update Data MySQL Limit Data

PHP - XML

PHP XML parsers PHP SimpleXML Parser PHP SimpleXML - Get PHP XML Expat PHP XML DOM

PHP - AJAX

AJAX แนะนำ AJAX PHP AJAX ฐานข้อมูล AJAX XML AJAX ค้นหาสด AJAX RSS Reader AJAX โพลล์

PHP Examples

PHP ตัวอย่าง PHP ทดสอบ PHP ใบรับรอง

PHP การอ้างอิง

PHP แถว PHP ปฏิทิน PHP วันที่ PHP ไดเรกทอรี PHP ผิดพลาด PHP ระบบแฟ้ม PHP กรอง PHP FTP PHP HTTP PHP Libxml PHP จดหมาย PHP คณิตศาสตร์ PHP อื่น ๆ PHP MySQLi PHP SimpleXML PHP เชือก PHP XML PHP Zip PHP ช่วงเวลา

 

PHPตัวอย่าง - AJAX Live Search


AJAX สามารถใช้ในการสร้างการค้นหาใช้งานง่ายและการโต้ตอบมากขึ้น


AJAX Live Search

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

ค้นหาสดมีประโยชน์มากเมื่อเทียบกับการค้นหาแบบดั้งเดิม:

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

ค้นหาหน้า w3ii ในช่องใส่ด้านล่าง:

ผลในตัวอย่างข้างต้นจะพบในไฟล์ XML ( links.xml ) เพื่อให้ตัวอย่างเช่นนี้มีขนาดเล็กและเรียบง่ายเพียงหกผลที่มีอยู่


ตัวอย่างอธิบาย - หน้า 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) {
    // 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("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
  • สร้างฟังก์ชั่นที่จะดำเนินการเมื่อตอบกลับของเซิร์ฟเวอร์ที่มีความพร้อม
  • ส่งคำขอร้องออกไปยังแฟ้มบนเซิร์ฟเวอร์
  • ขอให้สังเกตว่าพารามิเตอร์ (q) จะถูกเพิ่มไปยัง URL (ที่มีเนื้อหาของข้อมูลที่ป้อนเข้า)

PHP การไฟล์

หน้าบนเซิร์ฟเวอร์เรียกโดย JavaScript ข้างต้นเป็นไฟล์ PHP ที่เรียกว่า "livesearch.php"

รหัสแหล่งที่มาใน "livesearch.php" ค้นหาไฟล์ XML สำหรับชื่อที่ตรงกับสตริงการค้นหาและส่งกลับผลลัพธ์:

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

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

//get the q parameter from URL
$q=$_GET["q"];

//lookup all links from the xml file if length of q>0
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) {
      //find a link matching the search text
      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>";
        }
      }
    }
  }
}

// Set output to "no suggestion" if no hint was found
// or to the correct values
if ($hint=="") {
  $response="no suggestion";
} else {
  $response=$hint;
}

//output the response
echo $response;
?>

หากมีข้อความใด ๆ ที่ส่งมาจาก JavaScript ( strlen($q) > 0) ต่อไปนี้จะเกิดขึ้น:

  • โหลดไฟล์ XML เป็นวัตถุ DOM XML ใหม่
  • ห่วงผ่านทั้งหมด <title> องค์ประกอบที่จะหาแมตช์จากข้อความที่ส่งมาจากจาวาสคริปต์
  • ชุด URL ที่ถูกต้องและชื่อใน "$response" ตัวแปร หากมีมากกว่าหนึ่งแข่งขันพบการแข่งขันทั้งหมดจะถูกเพิ่มให้กับตัวแปร
  • ถ้าไม่มีแมตช์พบตัวแปร $ ตอบสนองที่ถูกกำหนดเป็น "no suggestion"