PHP와 AJAX MySQL 데이터베이스 예제

AJAX는 데이터베이스와 상호작용할 수 있습니다.

AJAX 데이터베이스 예제

아래 AJAX 예제에서는 웹 페이지가 AJAX 기술을 사용하여 MySQL 데이터베이스에서 정보를 읽는 방법을 보여줍니다.

드롭다운 목록에서 고객을 선택하세요


고객 정보를 나열할 것입니다.

이 애플리케이션은 네 가지 요소로 구성되어 있습니다:

  • MySQL 데이터베이스
  • 간단한 HTML 양식
  • JavaScript
  • PHP 페이지

데이터베이스

이 예제에서 사용할 데이터베이스는 다음과 같이 보입니다:

id 고객ID 회사명 연락인명 주소 도시 우편번호 국가
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 Canon Canon USA Inc. Tsuneji Uchida ...... New York 11042 USA

예제 설명

위의 예제에서, 사용자가 위의 드롭다운 목록에서 고객을 선택할 때 'showUser()' 함수가 실행됩니다。

이 함수는 onchange 이벤트가 발생할 때 호출됩니다。

이 HTML 코드는 다음과 같습니다:

예제

<!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="">선택하시오:</option>
<option value="1">Alibaba</option>
<option value="2">APPLE</option>
<option value="3">BAIDU</option>
<option value="4">Canon</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>고객 정보가 여기에 나타납니다.</b></div>
</body>
</html>

실행 예제

코드 설명:

먼저, 고객이 선택되었는지 확인합니다. 선택된 고객이 없다면(str == "") txtHint의 내용을 지우고 함수를 종료합니다. 선택된 고객이 있다면 다음 작업을 수행합니다:

  • XMLHttpRequest 객체를 생성합니다
  • 서버 응답이 준비되면 실행할 함수를 생성합니다
  • 서버의 파일로 요청을 보냅니다
  • 주의하세요. 매개변수(q)가 URL에 추가되었습니다(드롭다운 목록의 내용)

PHP 파일

위의 JavaScript 호출은 서버의 “getuser.php”라는 PHP 파일입니다.

“getuser.php”의 원본 코드는 MySQL 데이터베이스에서 쿼리를 실행하고, 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);
?>

설명: JavaScript에서 PHP 파일로 쿼리가 전송될 때 다음과 같은 일이 발생합니다:

  • PHP가 MySQL 서버와의 연결을 열어야 합니다
  • 정확한 고객을 찾았습니다
  • HTML 테이블을 생성하고 데이터를 채우고 "txtHint" 대체 문자를 반환하십시오