Latest web development tutorials
×

PHP kuliah

PHP kuliah PHP pengantar singkat PHP memasang PHP tatabahasa PHP variabel PHP echo/print PHP Jenis Data PHP konstan PHP tali PHP operator PHP If...Else PHP Switch PHP susunan PHP Sorting array PHP superglobals PHP While sirkulasi PHP For sirkulasi PHP fungsi PHP Variabel sihir PHP Ruang nama PHP Berorientasi Objek

PHP bentuk

PHP bentuk PHP bentuk Authentication PHP bentuk - bidang yang harus diisi PHP bentuk - email verifikasi dan URL PHP contoh bentuk lengkap PHP $_GET variabel PHP $_POST variabel

PHP canggih Tutorial

PHP Array multidimensi PHP tanggal PHP berisi PHP berkas PHP Upload File PHP Cookie PHP Session PHP E-mail PHP keamanan E-mail PHP Error PHP Exception PHP filter PHP filter lanjutan PHP JSON

PHP 7 Fitur baru

PHP 7 Fitur baru

PHP database

PHP MySQL pengantar singkat PHP MySQL koneksi PHP MySQL Membuat database PHP MySQL Buat tabel data PHP MySQL memasukkan data PHP MySQL Menyisipkan beberapa data yang PHP MySQL Laporan disiapkan PHP MySQL membaca data 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 pengantar singkat AJAX PHP AJAX database AJAX XML AJAX pencarian real-time AJAX RSS Reader AJAX suara

PHP Reference manual

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 image Processing PHP RESTful

Contoh real-time pencarian PHP AJAX

AJAX dapat memberikan pengguna dengan pengalaman pencarian yang lebih interaktif lebih ramah.


AJAX Live Search

Dalam contoh berikut, kita akan menunjukkan pencarian real-time, Anda bisa mendapatkan hasil pencarian saat Anda mengetik data pada saat yang sama.

pencarian real-time dengan pencari tradisional, dibandingkan dengan banyak keuntungan:

  • Ketika Anda mengetik data, ia akan menampilkan hasil pertandingan
  • Ketika melanjutkan mengetik data, hasil filter
  • Jika hasilnya terlalu kecil, Anda dapat menghapus karakter untuk mendapatkan jangkauan yang lebih luas

Masukkan dalam kotak teks di bawah "HTML", penelusuran yang berisi halaman HTML:

Contoh hasil di atas dalam sebuah file XML ( links.xml untuk menemukan) di. Untuk membuat contoh ini kecil dan sederhana, kami hanya menawarkan 6 hasil.


Contoh menjelaskan - Halaman HTML

Bila pengguna dalam karakter kotak input di atas melakukan "showResult ()" fungsi. Fungsi ini terdiri dari "onkeyup" Pemicu Event:

<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>

Sumber menjelaskan:

Jika kotak masukan kosong (str.length == 0), fungsi ini akan menghapus konten placeholder LiveSearch, dan keluar fungsi.

Jika kotak input tidak kosong, maka showResult () melakukan langkah-langkah berikut:

  • Buat XMLHttpRequest objek
  • Membuat fungsi ketika server siap untuk melakukan respon
  • Berkas pada server untuk mengirim permintaan
  • Harap dicatat bahwa menambah (kotak input berisi) akhir parameter URL (q)

file PHP

Server di atas melalui JavaScript memanggil halaman ini disebut "livesearch.php" file PHP.

"Livesearch.php" XML file kode sumber pencarian yang cocok dengan judul pencarian string, dan mengembalikan hasilnya:

<?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;
?>

Jika JavaScript untuk mengirim pesan teks (yaitu, strlen ($ q)> 0), terjadi:

  • Memuat file XML ke objek XML DOM baru
  • Melalui semua <title> elemen untuk menemukan teks yang cocok JavaScript memberitakan
  • Mengatur URL yang benar dan judul "$ respon" variabel. Jika menemukan lebih dari satu pertandingan, semua pertandingan akan ditambahkan ke variabel.
  • Jika tidak ada yang cocok, menempatkan variabel $ menanggapi "ada saran".