PHP와 AJAX MySQL 데이터베이스 예제
- 이전 페이지 AJAX XML
- 다음 페이지 AJAX responseXML
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" 대체 문자를 반환하십시오
- 이전 페이지 AJAX XML
- 다음 페이지 AJAX responseXML