Code Bank
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
 
 
User Name:
Password:
Remember me
Go Back   ASP Free ForumsProgrammingCode Bank

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread ASP Free Forums Sponsor:
  #1  
Old February 12th, 2008, 08:57 AM
krstofer's Avatar
krstofer krstofer is offline
Contributing User
ASP Free Newbie (0 - 499 posts)
 
Join Date: Mar 2004
Location: NJ
Posts: 60 krstofer User rank is Sergeant Major (2000 - 5000 Reputation Level)krstofer User rank is Sergeant Major (2000 - 5000 Reputation Level)krstofer User rank is Sergeant Major (2000 - 5000 Reputation Level)krstofer User rank is Sergeant Major (2000 - 5000 Reputation Level)krstofer User rank is Sergeant Major (2000 - 5000 Reputation Level)krstofer User rank is Sergeant Major (2000 - 5000 Reputation Level) 
Time spent in forums: 12 h 50 m 52 sec
Reputation Power: 27
Send a message via AIM to krstofer
Simple/Reusable AJAX query with Classic ASP.

Hey Guys. I've been a member here for a long time and decided to try to share some code that might be helpful to others. I hope someone can get some use out of it. The zip file contains eveything you need including the access DB and the "workingbar.gif". All you have to do is give the DB a dsn name of "ajax" and you will be ready to go.

Basic HTML Page
Code:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Update Form</title>
<script src="ajax.js" language="javascript"></script>
<script>
var whichLink = "nameQuery.asp"
var whichElement = "insert_response"

</script>


</head>

<body>

<form name="form1" action="" method="post">
First<input name="first_name" id="first_name" type="text" onKeyUp="showData()"><br>
Last<input name="last_name" id="last_name" type="text" onKeyUp="showData()"><br><br><br>


<div id="insert_response"></div>
</form>


</body>
</html>


This is the .js file.
Code:
// JavaScript Document
/*
This is a dynamic ajax query script. It uses the variables, enabling it to work with any page without having to recreate a new query script. Currently this is only for querying data. 
I am working on one for inserting and updating data also.

whichElement and whichLink are defined in the page calling the function.

I.E.

whichLink = "nameQuery.asp" this is the page making the query to the database.
whichElement = "nameList" this is the element where the data will be returned on the original page.

this function uses both the "name" attribute and the "id" attribute but could just as easily only use one or the other.

-created by krstofer@teamshibby.com. Based off of script found @ w3schools.com
*/
var xmlHttp

function showData()
{ 
//this shows the "working" graphic when the query page is retrieving data
document.getElementById(whichElement).innerHTML = "<div align=center><b>Working....</b><br><br><img src='workingBar.gif'></div>"

//by setting these values to "" it prevents an undefined error. Also defining these outside of the function will add existing data to the variable which will cause an error.
var theForm = ""
var howManyElement = ""
var daString = ""


theForm = document.form1
//this finds the number of elements on the form and assigns the number to the howManyElement variable.
howManyElement = theForm.elements.length;


xmlHttp=GetXmlHttpObject();

//this for block creates the string with all the data in the url. The loop goes through each element and assigns the form name and the value to the string creating a "first=brian&last=collier' string if the form contains a 'first' field and a 'last' field.

for (i=0; i<howManyElement; i++){
	
 daString = daString + theForm.elements[i].name+ "="+theForm.elements[i].value+"&";

}
if (xmlHttp==null)
  {
  alert ("Your browser does not support AJAX!");
  return;
  } 
 
//the 'whichLink' variable is assigned on the page making the request. 
var url=whichLink;
url=url+"?"+daString;
url=url+"sid="+Math.random();
xmlHttp.onreadystatechange=stateChanged;
xmlHttp.open("GET",url,true);
xmlHttp.send(null);

//alert(url)//this is used to view the URL being sent to the query page.
}

function stateChanged() 
{ 

if (xmlHttp.readyState==4)
{ 

document.getElementById(whichElement).innerHTML=xm  lHttp.responseText;
}
}

function GetXmlHttpObject()
{
var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}


The asp query page
Code:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>


<%
'this creates the dynamic query for the search. This is a very simple version.
first_name = request.QueryString("first_name")

last_name = request.QueryString("last_name")

if first_name <> "" and last_name = "" then

dynQuery = "first_name like '"& first_name&"%'"

elseif first_name = "" and last_name <> "" then

dynQuery = "last_name like '"& last_name&"%'"

elseif first_name <> "" and last_name <> "" then

dynQuery = "last_name like '"& last_name &"%' AND first_name like '"&first_name&"%'"

end if

%>

<%


Dim rs1
Dim conn
dim query
dim Cmd

conn = "dsn=ajax;"

Set rs1 = Server.CreateObject("ADODB.Recordset")
rs1.ActiveConnection = conn
rs1.Source = "select * from names where " & dynQuery
rs1.CursorType = 0
rs1.CursorLocation = 2
rs1.LockType = 1
rs1.Open()

rs1_numRows = 0

Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = -1
Repeat1__index = 0
rs1_numRows = rs1_numRows + Repeat1__numRows

%>
<%

While ((Repeat1__numRows <> 0) AND (NOT rs1.EOF)) 


response.Write(rs1("first_name") & " " & rs1("last_name") & " | " & rs1("email") & "<br><br>")


Repeat1__index=Repeat1__index+1
  Repeat1__numRows=Repeat1__numRows-1
  rs1.MoveNext()
Wend


rs1.Close()
Set rs1 = Nothing
%>
Attached Files
File Type: zip simpleDynamicAjaxQuerywithASP.zip (12.4 KB, 331 views)

Reply With Quote
Reply

Viewing: ASP Free ForumsProgrammingCode Bank > Simple/Reusable AJAX query with Classic ASP.


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
  
 





© 2003-2008 by Developer Shed. All rights reserved. DS Cluster 5 hosted by Hostway
Stay green...Green IT