AJAX Database 实例

Το AJAX μπορεί να χρησιμοποιηθεί για αλληλεπίδραση με τη βάση δεδομένων.

AJAX Database 实例

Η παρακάτω παράδειγμα δείχνει πώς η ιστοσελίδα μπορεί να διαβάσει πληροφορίες από τη βάση δεδομένων μέσω AJAX:

Παράδειγμα

Οι πληροφορίες πελάτη θα εμφανιστούν εδώ.

Προσπαθήστε το μόνοι σας

Παράδειγμα - Συνάρτηση showCustomer()

Μετά την επιλογή ενός πελάτη από τη λίστα ανασκόπησης παραπάνω, εκτελείται η συνάρτηση με το όνομα "showCustomer()" που κλήθηκε από το JavaScript. Αυτή η συνάρτηση εκτελείται onchange ακτινοβολία γεγονότων:

showCustomer

function showCustomer(str) {
  var xhttp; 
  if (str == "") {
    document.getElementById("txtHint").innerHTML = "";
    return;
  }
  xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState  == 4 && this.status == 200) {
    document.getElementById("txtHint").innerHTML  = this.responseText;
    }
  };
  xhttp.open("GET",  "getcustomer.asp?q=" + str, true);
  xhttp.send();
} 

Η συνάρτηση showCustomer() εκτελείται ως εξής:

  • Έλεγχος αν ο πελάτης επιλέχθηκε
  • Δημιουργία αντικειμένου XMLHttpRequest
  • Δημιουργία συνάρτησης που εκτελείται όταν ο διακομιστής απαντήσει
  • Αποστολή αίτησης στο αρχείο του διακομιστή
  • Λάβετε υπόψη ότι ο παράμετρος q προστίθεται στη διεύθυνση URL (με περιεχόμενο ανασκόπησης)

Σελίδα διακομιστή AJAX

Η σελίδα διακομιστή που καλείται από το JavaScript είναι το αρχείο ASP με το όνομα "getcustomer.asp".

Η επανγραφή του αρχείου του διακομιστή με PHP ή άλλες γλώσσες διακομιστών είναι εύκολη.

Δείτε την αντίστοιχη παράδειγμα σε PHP

Το κώδικας του "getcustomer.asp" εκτελεί ερωτήσεις βάσης δεδομένων και επιστρέφει τα αποτελέσματα σε ένα πίνακα HTML:

<%
response.expires=-1
sql="SELECT * FROM CUSTOMERS WHERE CUSTOMERID="
sql=sql & "'" & request.querystring("q") & "'"
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open(Server.Mappath("customers.mdb"))
set rs=Server.CreateObject("ADODB.recordset")
rs.Open sql,conn
response.write("<table>")
για μέχρι rs.EOF
 για κάθε x στο rs.Fields
   response.write("<tr><td><b>" & x.name & "</b></td>")
   response.write("<td>" & x.value & "</td></tr>")
 next
 rs.MoveNext
loop
response.write("</table>")
%>