PHP - AJAX i PHP

AJAX jest używany do tworzenia interaktywnych aplikacji.


AJAX PHP Przykłady

Poniższe przykłady pokazują, gdy użytkownik wpisze w polu wprowadzania znaków, jak strony internetowe komunikują się z serwerem WWW:

Przykłady

尝试在输入框中输入一个名字,如:Anna:

姓名:

返回值:




Przykłady wyjaśnić - strony HTML

Gdy użytkownik w powyższym postać "pole wejścia wykonuje showHint ()" funkcji. Funkcja ta polega na "onkeyup" wyzwalacza zdarzeń:

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

Źródło wyjaśnił:

Jeśli pole wejściowe jest pusta (str.length == 0), funkcja ta będzie jasne txtHint treści zastępczy, a wyjście z funkcji.

Jeśli pole wejściowe nie jest pusty, to showHint () wykonuje następujące czynności:

  • Tworzenie obiektu XMLHttpRequest
  • Tworzenie funkcji, gdy serwer jest gotowy do przeprowadzenia reakcji
  • Plików na serwerze, aby wysyłać żądania
  • Należy pamiętać, że dodanie do (zawiera pole wejściowe) do końca parametru URL (Q)

Plik PHP

Powyższe serwery poprzez javascript wywołaniem tej strony jest nazywany "gethint.php" plik PHP.

"Gethint.php" kod źródłowy sprawdza tablicę nazw, a następnie powrócił do przeglądarki odpowiadającej nazwie:

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

Objaśnienie: Jeśli JavaScript wysyłać wiadomości tekstowe (np strlen ($ q) 0>) następuje:

  1. Znajdź pasujące znaki wysłać imiona JavaScript
  2. Jeśli nie zostanie znaleziony, łańcuch reakcji jest ustawiony na "brak sugestii"
  3. Jeśli okaże się jeden lub więcej pasujących imiona, nazwiska wszystkich ustawień z ciągiem odpowiedzi
  4. Wysłanie odpowiedzi do "txtHint" zastępczy

PHP Ajax rozwiązania domenach problemów

Jeśli potrzebujesz żądanie asynchroniczne cross-domain może być oglądany: PHP Ajax przekroczyć domen rozwiązania problemów.