PHP - AJAX lwn. PHP

PHP - AJAX lwn. PHP

AJAX digunakan untuk mencipta aplikasi yang lebih interaktif.

Contoh PHP AJAX

Contoh berikut akan menunjukkan cara halaman web berkomunikasi dengan pelayan web apabila pengguna menaip aksara dalam kotak input:

QQ图片20161010101254.png

Penjelasan contoh - halaman HTML

Apabila pengguna menaip aksara dalam kotak input di atas, fungsi "showHint()" akan dilaksanakan. Fungsi ini dicetuskan oleh peristiwa "onkeyup":

<html>
<head>
<script>
function showHint(str)
{
         if (str.length==0)
         {
                 document.getElementById("txtHint").innerHTML="";
                 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("txtHint").innerHTML=xmlhttp.responseText;
                 }
         }
         xmlhttp.open("GET","gethint.php?q="+str,true);
         xmlhttp.send();
}
</script>
</head>
<body>
 
<p><b>在输入框中输入一个姓名:</b></p>
<form>
姓名: <input type="text" onkeyup="showHint(this.value)">
</form>
<p>返回值: <span id="txtHint"></span></p>
 
</body>
</html>

Penjelasan kod sumber:

Jika kotak input kosong (str.length==0), fungsi ini akan mengosongkan pemegang tempat txtHint kandungan dan keluar dari fungsi.

Jika kotak input tidak kosong, maka showHint() akan melaksanakan langkah berikut:

·   Cipta objek XMLHttpRequest

·  Cipta fungsi untuk dilaksanakan apabila respons pelayan sedia

·   Hantar permintaan kepada fail pada pelayan

·   Sila ambil perhatian parameter (q) yang ditambahkan pada penghujung URL (mengandungi kandungan kotak input)

Fail PHP

Halaman pelayan yang dipanggil di atas melalui JavaScript ialah fail PHP bernama "gethint.php".

Kod sumber dalam "gethint.php" menyemak tatasusunan nama dan mengembalikan nama yang sepadan kepada penyemak imbas:

<?php
// 将姓名填充到数组中
$a[]="Anna";
$a[]="Brittany";
$a[]="Cinderella";
$a[]="Diana";
$a[]="Eva";
$a[]="Fiona";
$a[]="Gunda";
$a[]="Hege";
$a[]="Inga";
$a[]="Johanna";
$a[]="Kitty";
$a[]="Linda";
$a[]="Nina";
$a[]="Ophelia";
$a[]="Petunia";
$a[]="Amanda";
$a[]="Raquel";
$a[]="Cindy";
$a[]="Doris";
$a[]="Eve";
$a[]="Evita";
$a[]="Sunniva";
$a[]="Tove";
$a[]="Unni";
$a[]="Violet";
$a[]="Liza";
$a[]="Elizabeth";
$a[]="Ellen";
$a[]="Wenche";
$a[]="Vicky";
 
//从请求URL地址中获取 q 参数
$q=$_GET["q"];
 
//查找是否由匹配值, 如果 q>0
if (strlen($q) > 0)
{
         $hint="";
         for($i=0; $i<count($a); $i++)
         {
                 if (strtolower($q)==strtolower(substr($a[$i],0,strlen($q))))
                 {
                          if ($hint=="")
                          {
                                   $hint=$a[$i];
                          }
                          else
                          {
                                   $hint=$hint." , ".$a[$i];
                          }
                 }
         }
}
 
// 如果没有匹配值设置输出为 "no suggestion"
if ($hint == "")
{
         $response="no suggestion";
}
else
{
         $response=$hint;
}
 
//输出返回值
echo $response;
?>

Penjelasan: Jika JavaScript menghantar sebarang teks (iaitu strlen($q ) > ; 0), kemudian:

1 Cari nama yang sepadan dengan aksara yang dihantar oleh JavaScript

2 Jika tiada padanan ditemui, tetapkan rentetan respons kepada "tiada cadangan"

3. Jika satu atau lebih nama yang sepadan ditemui, tetapkan rentetan respons dengan semua nama

4 Hantar respons kepada pemegang tempat "txtHint"

Penyelesaian masalah silang domain PHP Ajax <. 🎜>

Jika permintaan tak segerak anda perlu merentas domain, anda boleh menyemak: Penyelesaian masalah merentas domain PHP Ajax.


Meneruskan pembelajaran
||
<html> <head> <script> function showHint(str) { if (str.length==0) { document.getElementById("txtHint").innerHTML=""; 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("txtHint").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","gethint.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <p><b>在输入框中输入一个姓名:</b></p> <form> 姓名: <input type="text" onkeyup="showHint(this.value)"> </form> <p>返回值: <span id="txtHint"></span></p> </body> </html>
  • Cadangan kursus
  • Muat turun perisian kursus