Tutoriel de bas...LOGIN

Tutoriel de base de développement PHP AJAX et MySQL

Instance de base de données AJAX

AJAX peut être utilisé pour communiquer de manière interactive avec la base de données

ci-dessous L'exemple montrera comment la page Web lit les informations de la base de données via AJAX

Veuillez sélectionner un client dans la liste déroulante à gauche :

Cet exemple se compose de quatre éléments :

  • Base de données MySQL

  • Formulaire HTML simple

  • JavaScript

  • Page PHP


Base de données

Cet exemple nécessite que les tables de données suivantes soient créées dans le base de données :

70.png


Formulaire HTML et JavaScript

Code source voir 1. php

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script>
function showUser(str){
	var xmlhttp;
	//检查是否有用户被选择
	if(str==""){
		document.getElementById("txt").innerHTML="";
		return;
	}
	//创建 XMLHttpRequest 对象
	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("txt").innerHTML=xmlhttp.responseText;
		}
	}
	//向服务器上的文件发送请求
	xmlhttp.open("GET","2.php?q="+str,true);
	xmlhttp.send();
}
</script>
</head>
<body>
<from>
	<!-- onchange 事件会在域的内容改变时触发
		当用户在上面的下拉列表中选择某位用户时,会执行名为 "showUser()" 的函数
	 -->
	<select name="users" onchange="showUser(this.value)">
		<option value="">选择一个人:</option>
		<option value="1">Peter Griffin</option>
		<option value="2">小 明</option>
		<option value="3">小 白</option>
	</select>
</from>
<br/>
<br/>
<div id="txt"><b>选择相应用户,用户信息将在这里展示出来</b></div>
</body>
</html>

Explication du code source

Une fois que l'utilisateur a sélectionné dans la liste déroulante, la fonction showUser() est exécutée via l'événement onchange

La fonction showUser() effectuera les étapes suivantes :

  • Vérifier si un utilisateur est sélectionné

  • Créer un objet XMLHttpRequest

  • Créer une fonction à exécuter lorsque la réponse du serveur est prête

  • Envoyer une requête au fichier sur le serveur

  • Veuillez noter le paramètre (q) ajouté à la fin de l'URL (contient le contenu de la liste déroulante)


Page PHP

Ceci ci-dessus La page du serveur appelée via JavaScript est un fichier PHP nommé "2.php".

Le code source dans "2.php" exécutera une requête sur la base de données MySQL et renverra les résultats dans un tableau HTML :

<?php
header("Content-type: text/html; charset=utf-8");
$q=$_GET["q"];
//连接数据库
$con = mysqli_connect('localhost','root','root','test');
//判断是否连接成功
if(!$con){
	die('连接数据库失败:'.mysqli_error($con));
}
//选择数据库
mysqli_select_db($con,"test");
//设定字符集
mysqli_query($con,'set names utf8');
//从数据库中查出id对应的相应用户信息
$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>家乡</th>
<th>工作</th>
</tr>
";
//循环显示出用信息
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>";


?>

Expérience d'apprentissage

Cet exemple comprend principalement les points de connaissances suivants :

  • Bases du formulaire : options déroulantes

  • Événement onchange : se produit lorsque le contenu du domaine change

  • Appel de fonction, passage de valeur de fonction

  • Création d'un objet AJAX XMLHttpRequest, lorsque le serveur répond Fonctions exécutées, envoyant des requêtes aux fichiers sur le serveur : Voir 1-5 pour l'expérience d'apprentissage

  • Méthode HTML DOM getElementById() : Renvoie une référence au premier objet avec le spécifié ID

  • Création d'une base de données, connexion à la base de données, sélection de la base de données, définition du jeu de caractères, interrogation de la base de données en fonction de l'ID et boucle du contenu de la base de données

Fonctions liées à la base de données :

  • mysqli_connect() : Ouvrir une nouvelle connexion au serveur MySQL

  • mysqli_error () : Retour au précédent Un message d'erreur texte généré par une opération MySQL.

  • mysqli_select_db() : utilisé pour changer la base de données par défaut pour la connexion

  • mysqli_query() : exécute une requête sur la base de données

  • mysqli_fetch_array() : récupère une ligne de l'ensemble de résultats sous forme de tableau associatif, de tableau numérique ou les deux

section suivante
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script> function showUser(str){ var xmlhttp; //检查是否有用户被选择 if(str==""){ document.getElementById("txt").innerHTML=""; return; } //创建 XMLHttpRequest 对象 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("txt").innerHTML=xmlhttp.responseText; } } //向服务器上的文件发送请求 xmlhttp.open("GET","2.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <from> <!-- onchange 事件会在域的内容改变时触发 当用户在上面的下拉列表中选择某位用户时,会执行名为 "showUser()" 的函数 --> <select name="users" onchange="showUser(this.value)"> <option value="">选择一个人:</option> <option value="1">Peter Griffin</option> <option value="2">小 明</option> <option value="3">小 白</option> </select> </from> <br/> <br/> <div id="txt"><b>选择相应用户,用户信息将在这里展示出来</b></div> </body> </html>
soumettreRéinitialiser le code
chapitredidacticiel