PHP----Ajax異步請求

須要兩個PHP頁面:1.php是發出請求和接受請求結果的。2.php是處理請求的結果。javascript

1.php中代碼:php

<a href="#" onclick="sendAjaxRequest();"></a>
要有能觸發JS中函數的標籤,這裏是a標籤。在1.php頁面中有JS代碼進行請求:

var http_request=false;
function sendAjaxRequest(){
	//alert('進入執行SEND');
	//執行前先進行清理上次的結果操做
	SetHidden();//這裏模擬各類對頁面的操做
	if(window.XMLHttpRequest)//請求對象是JavaScript中的對象XMLHttpRequest。
	{
		http_request=new XMLHttpRequest();
	}else if(window.ActiveXObject){
		try
		{
			http_request=new ActiveXObject("Msxml2.XMLHTTP");//IE
		}catch (e){
			try{
				http_request=new ActiveXObject("Microsoft.XMLHTTP");//ForeFox
			}catch(e){}
		}
	}
	if(http_request)
	{
		
		http_request.open("POST","2.php",true);//指定請求處理頁和請求方式及是否是異步
		http_request.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');//設置請求頭,應該還能設置其餘請求頭部信息
		var postdata="keyword="+encodeURI(document.getElementById("keyword").value);//POST的數據,若是是GET方法就不用這裏了

		http_request.onreadystatechange = updatePage;//頁面2.php交互請求時,指定函數updatePage來處理頁面2.php的響應,有5種響應,因此要進行選擇處理
		http_request.send(postdata);//發送POST數據
	}
}

function updatePage(){//此函數根據2.php所作的反應,來對頁面1.php做出一些動做
	if(http_request.readyState==4)//有5種響應0--4,最後一種4是處理完請求
	{
		//alert('響應已完成,能夠訪問服務器響應並使用它');
		//alert(http_request.responseText);
		var div=document.getElementById("divresult");
		if(http_request.responseText.split(';')[0]!=""&&http_request.responseText.split(';')[0]!=undefined&&http_request.responseText.split(';')[1]!=undefined)
		{
			document.getElementById("label3").innerHTML=http_request.responseText.split(';')[0]+" ";
			document.getElementById("label5").innerHTML=http_request.responseText.split(';')[1]+" ";//這裏responseText,是頁面2.php  echo函數打印的全部數據
			div.style.display="block";
		}
		else
		{
			
			alert("2.php處理完了");
		}
		
	}
}
function SetHidden(){
document.getElementById("divresult").style.display="none";
}
2.php中的響應:

<?php //作出的響應頁面,
$link=mysql_connect("192.168.100.100","ccc","ccc");

if($link)
{
	$db_select=mysql_select_db("search",$link);
	mysql_query("set names utf8");
}

if($db_select)
{
	$result=mysql_query("select proname,person from search where APPKEY='".$_POST[keyword]."'",$link);
	mysql_close($link);
}

if($result)
{
	$info=mysql_fetch_array($result);
	mysql_free_result($result);
}

if($info)
{
	echo $info[proname];//最主要是輸出的內容,是與1.php進行交互的基礎,另外一種交互的方法是用GET和POST請求對1.php再次發出,1.php進行接收請求
	echo ";".$info[1];
}


?>
相關文章
相關標籤/搜索