Mifano ya Database ya MySQL kwa PHP

AJAX 可用来与数据库进行交互式通信。

AJAX 数据库实例

在下面的 AJAX 实例中,我们将演示网页如何使用 AJAX 技术从 MySQL 数据库中读取信息。

在下拉列表中选择一个客户


此处将列出客户信息。

这个应用程序由四个元素组成:

  • MySQL 数据库
  • 一个简单的 HTML 表单
  • JavaScript
  • PHP 页面

数据库

数据库看起来像这样在本例中:

id CustomerID CompanyName ContactName Address City PostalCode Country
1 Alibaba Alibaba Group Ma Yun ...... Hangzhou 310002 China
2 APPLE Apple Inc. Tim Cook ...... Cupertino 95014 USA
3 BAIDU BAIDU Inc. Li YanHong ...... Beijing 100080 China
4 Kanoni Kanoni USA Inc. Tsuneji Uchida ...... New York 11042 USA

Muhtasari wa Mivuno

Kwenye mivuno hii, kama mtu anachagua kundi cha wakati wa kichwa chini, inafanywa fungsi ya "showUser()".

Funksheni hii inaitwa na matukio onchange.

Hii ni kodeni cha HTML:

Mfano

<!doctype html>
<html>
<head>
<script>
function showUser(str) {
  if (str=="") {
    document.getElementById("txtHint").innerHTML="";
    return;
  } 
  if (window.XMLHttpRequest) {
    // code for IE7+, Firefox, Chrome, Opera, Safari
    xmlhttp=new XMLHttpRequest();
  } else { // code for IE6, IE5
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.onreadystatechange=function() {
    if (this.readyState==4 && this.status==200) {
      document.getElementById("txtHint").innerHTML=this.responseText;
    }
  }
  xmlhttp.open("GET","/demo/getcustomer.php?q="+str,true);
  xmlhttp.send();
}
</script>
</head>
<body>
<form>
<select name="users" onchange="showUser(this.value)">
<option value="">Chaguo kwenye chaguo:</option>
<option value="1">Alibaba</option>
<option value="2">APPLE</option>
<option value="3">BAIDU</option>
<option value="4">Kanoni</option>
<option value="5">Google</option>
<option value="6">HUAWEI</option>
<option value="7">Microsoft</option>
<option value="8">Nokia</option>
<option value="9">SONY</option>
<option value="10">Tencent</option>
</select>
</form>
<br>
<div id="txtHint"><b>Maumivu ya mwanasheria yatapewa hapa.</b></div>
</body>
</html>

Mfano wa kusafiri

Muhtasari wa kifaa

Kwanza, tafuta iwapo mtu anahitaji. Iwapo hakuna mtu anahitaji (str == ""), kimaisha kufikia txtHint na kumaliza fungsi. Iwapo mtu anahitaji, tafuta hii:

  • Kufanya hifadhi ya XMLHttpRequest
  • Kufanya fungsi inayotumika kwa kumaliza maelezo ya serveri
  • Tuma inayotumika kwenda faili kwenye serveri
  • Taradhisya, thamani (q) inatangazwa katika URL (kuna orodha ya kuzingatia zawadi)

Faili ya PHP

Maktaba ya JavaScript anayotumika kwenye wavuti ya kijifunze ni faili ya PHP yenye jina "getuser.php".

Mafuatilia ya 'getuser.php' inafanya maelezo kwa kusoma mtandao wa MySQL na inarudi matokeo katika tablica ya HTML:

<?php
$q = intval($_GET['q']);
$con = mysqli_connect('MyServer','MyUser','MyPassword','Customers');
if (!$con) {
    die('Could not connect: ' . mysqli_error($con));
}
$sql="SELECT * FROM customerslist WHERE id = '".$q."'";
$result = mysqli_query($con,$sql);
echo "<table>";
while($row = mysqli_fetch_array($result)) {
    echo "<tr><th>CustomerID</th><td>" . $row['CustomerID'] . "</td></tr>";
    echo "<tr><th>CompanyName</th><td>" . $row['CompanyName'] . "</td></tr>";
    echo "<tr><th>ContactName</th><td>" . $row['ContactName'] . "</td></tr>";
    echo "<tr><th>Address</th><td>" . $row['Address'] . "</td></tr>";
    echo "<tr><th>City</th><td>" . $row['City'] . "</td></tr>";
    echo "<tr><th>PostalCode</th><td>" . $row['PostalCode'] . "</td></tr>";
    echo "<tr><th>Country</th><td>" . $row['Country'] . "</td></tr>";
}
echo "</table>";
mysqli_close($con);
?>

Muhtasari: Kama uharibifu kutoka JavaScript kwa kina ya PHP, inatofautiana kama iliyotumiwa:

  • PHP Kufungua kina na mtaalamu wa MySQL
  • Kutumia mtu wa kufikiria
  • Pata kina HTML kwa kufungua data, kusoma mtaalamu wa "txtHint" na kusoma mtaalamu wa "txtHint"