In this article, we are going to look at how to implement an Ajax solution that uses an ASP.NET page to pull data from a back-end database. In this tutorial, we have a table stored in a MySQL database.
You can replace the ASP.NET code on this page with any other server-side scripting languages that you are familiar with such as ASP or PHP. You can refer to the other tutorials in this series for more help using a different server-side scripting language.
In addition, the back-end data source does not have to be MySQL. You can modify the database connection in the example for accessing other database platforms. The concept remains the same.
HTML Example
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function showEmployee(str) {
if (str==""){
document.getElementById("div1").innerHTML="Select an Employee for more details!";
return;
}
var xhr = false;
if (window.XMLHttpRequest) {
// IE7+, Firefox, Chrome, Opera, Safari
xhr = new XMLHttpRequest();
} else {
// IE5/IE6
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
if (xhr) {
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
document.getElementById("div1").innerHTML = xhr.responseText;
}
}
xhr.open("GET", "/demo/ajax_dbquery.aspx?q="+str, true);
xhr.send(null);
}
}
</script>
</head>
<body>
<div>
<select name="employees" onchange="showEmployee(this.value)">
<option value="">Select an Employee:</option>
<option value="3">Frank Ford</option>
<option value="1">John Smith</option>
<option value="4">Lisa Stark</option>
<option value="2">Sally Smart</option>
</select>
<div id="div1">Select an Employee for more details!</div>
</div>
</body>
</html>
ASP.NET Example
Imports System.Data.Odbc
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.AppendHeader("Cache-Control", "no-cache")
Response.AppendHeader("Cache-Control", "no-store")
Response.AppendHeader("Cache-Control", "must-revalidate")
Response.AppendHeader("Pragma", "no-cache")
Response.AppendHeader("Expires", "Sat, 14 Jan 2012 01:00:00 GMT")
Dim db_svr As String = "dbserver.com"
Dim db_name As String = "databaseName"
Dim db_un As String = "dbUserName"
Dim db_upwd As String = "dbPassword"
Dim tablename As String = "employees"
Dim fieldname1 As String = "empName"
Dim fieldname2 As String = "empTitle"
Dim fieldname3 As String = "empOffice"
Dim q As String = Request.QueryString("q")
Dim dbQuery As String = "SELECT * FROM " & tablename & " WHERE empID = " & q
Dim connStr = "Driver={MySQL ODBC 3.51 Driver};SERVER=" & db_svr & ";DATABASE=" & db_name & ";UID=" & db_un & ";PWD=" & db_upwd
Dim dbconn As OdbcConnection = New OdbcConnection(connStr)
Dim dbCommand As New OdbcCommand
dbCommand.Connection = dbConn
Try
dbconn.Open()
dbCommand.CommandText = dbQuery
Dim reader = dbCommand.ExecuteReader()
Response.Write("<table class='tblClear'>")
Do While reader.Read() = True
Response.Write("<tr><td style='width:100px;'>Name:</td><td>" & reader(fieldname1) & "</td></tr>")
Response.Write("<tr><td style='width:100px;'>Name:</td><td>" & reader(fieldname2) & "</td></tr>")
Response.Write("<tr><td style='width:100px;'>Name:</td><td>" & reader(fieldname3) & "</td></tr>")
Loop
dbconn.Close()
Response.Write("</table>")
Catch ex As Exception
Response.Write("An error occured trying to access the database.")
End Try
End Sub