国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHP開(kāi)發(fā)基礎(chǔ)教程之AJAX與MySQL

AJAX 數(shù)據(jù)庫(kù)實(shí)例

AJAX可以用來(lái)和數(shù)據(jù)庫(kù)進(jìn)行交互式通信

下面的例子將演示網(wǎng)頁(yè)如何通過(guò) AJAX 從數(shù)據(jù)庫(kù)讀取信息

請(qǐng)?jiān)谧筮叺南吕斜碇羞x擇一個(gè)客戶:

本例由四個(gè)元素組成:

  • ?MySQL 數(shù)據(jù)庫(kù)

  • ?簡(jiǎn)單的 HTML 表單

  • ?JavaScript

  • ?PHP 頁(yè)面


數(shù)據(jù)庫(kù)

本例需要在數(shù)據(jù)庫(kù)中建立如下數(shù)據(jù)表:

70.png


HTML 表單與JavaScript

源碼見(jiàn)1.php

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function showUser(str){
	var xmlhttp;
	//檢查是否有用戶被選擇
	if(str==""){
		document.getElementById("txt").innerHTML="";
		return;
	}
	//創(chuàng)建 XMLHttpRequest 對(duì)象
	if(window.XMLHttpRequest){
		// IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執(zhí)行代碼
		xmlhttp=new XMLHttpRequest();
	}
	else{
		//IE6,IE5瀏覽器執(zhí)行代碼
		xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
	}
	//創(chuàng)建在服務(wù)器響應(yīng)就緒時(shí)執(zhí)行的函數(shù)
	xmlhttp.onreadystatechange=function(){

		if(xmlhttp.readyState==4 && xmlhttp.status==200){
			document.getElementById("txt").innerHTML=xmlhttp.responseText;
		}
	}
	//向服務(wù)器上的文件發(fā)送請(qǐng)求
	xmlhttp.open("GET","2.php?q="+str,true);
	xmlhttp.send();
}
</script>
</head>
<body>
<from>
	<!-- onchange 事件會(huì)在域的內(nèi)容改變時(shí)觸發(fā)
		當(dāng)用戶在上面的下拉列表中選擇某位用戶時(shí),會(huì)執(zhí)行名為 "showUser()" 的函數(shù)
	 -->
	<select name="users" onchange="showUser(this.value)">
		<option value="">選擇一個(gè)人:</option>
		<option value="1">Peter Griffin</option>
		<option value="2">小 明</option>
		<option value="3">小 白</option>
	</select>
</from>
<br/>
<br/>
<div id="txt"><b>選擇相應(yīng)用戶,用戶信息將在這里展示出來(lái)</b></div>
</body>
</html>

源碼解釋

用戶通過(guò)下拉列表選擇后,通過(guò)onchange事件執(zhí)行showUser()函數(shù)

showUser() 函數(shù)會(huì)執(zhí)行以下步驟:

  • ?檢查是否有用戶被選擇

  • 創(chuàng)建 XMLHttpRequest 對(duì)象

  • ?創(chuàng)建在服務(wù)器響應(yīng)就緒時(shí)執(zhí)行的函數(shù)

  • ?向服務(wù)器上的文件發(fā)送請(qǐng)求

  • 請(qǐng)注意添加到 URL 末端的參數(shù)(q)(包含下拉列表的內(nèi)容)


PHP 頁(yè)面

上面這段通過(guò) JavaScript 調(diào)用的服務(wù)器頁(yè)面是名為 "2.php" 的 PHP 文件。

"2.php" 中的源代碼會(huì)運(yùn)行一次針對(duì) MySQL 數(shù)據(jù)庫(kù)的查詢,然后在 HTML 表格中返回結(jié)果:

<?php
header("Content-type: text/html; charset=utf-8");
$q=$_GET["q"];
//連接數(shù)據(jù)庫(kù)
$con = mysqli_connect('localhost','root','root','test');
//判斷是否連接成功
if(!$con){
	die('連接數(shù)據(jù)庫(kù)失敗:'.mysqli_error($con));
}
//選擇數(shù)據(jù)庫(kù)
mysqli_select_db($con,"test");
//設(shè)定字符集
mysqli_query($con,'set names utf8');
//從數(shù)據(jù)庫(kù)中查出id對(duì)應(yīng)的相應(yīng)用戶信息
$sql="SELECT * FROM customer WHERE id='".$q."'";
$result=mysqli_query($con,$sql);
echo "<table border='1' cellspacing='0' cellpadding='0'>
<tr>
<th>姓</th>
<th>名</th>
<th>年齡</th>
<th>家鄉(xiāng)</th>
<th>工作</th>
</tr>
";
//循環(huán)顯示出用信息
while($row = mysqli_fetch_array($result)){
	echo "<tr>";
	echo "<td>".$row['FirstName']."</td>";
	echo "<td>".$row['LastName']."</td>";
	echo "<td>".$row['Age']."</td>";
	echo "<td>".$row['Hometown']."</td>";
	echo "<td>".$row['Job']."</td>";
	echo "</tr>";
}
echo "</table>";


?>

學(xué)習(xí)心得

本例子主要包括如下知識(shí)點(diǎn):

  • ?表單基礎(chǔ):下拉選項(xiàng)

  • ?onchange事件:在域的內(nèi)容改變時(shí)發(fā)生

  • 函數(shù)調(diào)用、函數(shù)傳值

  • AJAX XMLHttpRequest對(duì)象的創(chuàng)建、在服務(wù)器響應(yīng)的時(shí)候執(zhí)行的函數(shù)、向服務(wù)器上的文件發(fā)送請(qǐng)求:見(jiàn)1-5講學(xué)習(xí)心得

  • HTML DOM getElementById()方法:返回對(duì)擁有指定 ID 的第一個(gè)對(duì)象的引用

  • ?數(shù)據(jù)庫(kù)的創(chuàng)建、連接數(shù)據(jù)庫(kù)、選擇數(shù)據(jù)庫(kù)、設(shè)定字符集、根據(jù)id從數(shù)據(jù)庫(kù)中查詢、循環(huán)取出數(shù)據(jù)庫(kù)中的內(nèi)容

?有關(guān)數(shù)據(jù)庫(kù)的函數(shù):

  • mysqli_connect():打開(kāi)一個(gè)到 MySQL 服務(wù)器的新的連接

  • mysqli_error():返回上一個(gè) MySQL 操作產(chǎn)生的文本錯(cuò)誤信息。

  • mysqli_select_db():用于更改連接的默認(rèn)數(shù)據(jù)庫(kù)

  • mysqli_query():執(zhí)行某個(gè)針對(duì)數(shù)據(jù)庫(kù)的查詢

  • mysqli_fetch_array():從結(jié)果集中取得一行作為關(guān)聯(lián)數(shù)組,或數(shù)字?jǐn)?shù)組,或二者兼有

繼續(xù)學(xué)習(xí)
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script> function showUser(str){ var xmlhttp; //檢查是否有用戶被選擇 if(str==""){ document.getElementById("txt").innerHTML=""; return; } //創(chuàng)建 XMLHttpRequest 對(duì)象 if(window.XMLHttpRequest){ // IE7+, Firefox, Chrome, Opera, Safari 瀏覽器執(zhí)行代碼 xmlhttp=new XMLHttpRequest(); } else{ //IE6,IE5瀏覽器執(zhí)行代碼 xmlhttp= new ActiveXObject("Microsoft.XMLHTTP"); } //創(chuàng)建在服務(wù)器響應(yīng)就緒時(shí)執(zhí)行的函數(shù) xmlhttp.onreadystatechange=function(){ if(xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById("txt").innerHTML=xmlhttp.responseText; } } //向服務(wù)器上的文件發(fā)送請(qǐng)求 xmlhttp.open("GET","2.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <from> <!-- onchange 事件會(huì)在域的內(nèi)容改變時(shí)觸發(fā) 當(dāng)用戶在上面的下拉列表中選擇某位用戶時(shí),會(huì)執(zhí)行名為 "showUser()" 的函數(shù) --> <select name="users" onchange="showUser(this.value)"> <option value="">選擇一個(gè)人:</option> <option value="1">Peter Griffin</option> <option value="2">小 明</option> <option value="3">小 白</option> </select> </from> <br/> <br/> <div id="txt"><b>選擇相應(yīng)用戶,用戶信息將在這里展示出來(lái)</b></div> </body> </html>
提交重置代碼