dyarosh
asked on
How to populate a drop down menu from a database without refreshing the page
I have form on my page and based on what the user chooses from the first drop down menu, I want the next drop down menu to populate with values from a database. I've attached a copy of the code and the asp function I'm trying to call.
When I select my survey project from the 1st drop down, I get the alert -> There was a problem while using XMLHTTP: Internal Server Error.
The getsurvey.asp code appears to be working and I've included the output from this function when I test the program in my browser.
Can someone please help me figure out what I'm doing wrong?
When I select my survey project from the 1st drop down, I get the alert -> There was a problem while using XMLHTTP: Internal Server Error.
The getsurvey.asp code appears to be working and I've included the output from this function when I test the program in my browser.
Can someone please help me figure out what I'm doing wrong?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>My title</title>
<SCRIPT TYPE="text/javascript">
<!--
window.focus();
function getSurveys(dbPath)
{
var strURL="getsurvey.asp?dbpath=" + dbPath;
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
if (xmlhttp)
{
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState == 4)
{
// only if "OK"
if (xmlhttp.status == 200)
{
document.getElementById('surveydiv').innerHTML=xmlhttp.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + xmlhttp.statusText);
}
}
}
xmlhttp.open("GET", strURL, true);
xmlhttp.send(null);
} else {
alert("There was a problem creating the xmlhttp object");
}
}
//-->
</SCRIPT>
</head>
<body>
<table width="100%" border="0" cellpadding="0" cellspacing="5">
<tr>
<td align="left" valign="top">Project Survey:</td>
<td align="left" valign="top">
<select name="Projects" onChange="getSurveys(this.value)">
<option>Select Project Survey</option>
<option value="mypath\mydbname.mdb">Survey Project 1</option>
</select>
</td>
</tr>
<tr>
<td align="left" valign="top">Program Survey:</td>
<td align="left" valign="top">
<p id="surveydiv">
<select name="survey"><option>Select Project Survey First</option></select>
</p>
</td>
</tr>
</table>
</body>
</html>
******************************************************************
getsurveys.asp
******************************************************************
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252" ENABLESESSIONSTATE = True %>
<% Option Explicit %>
<!--#include file="functions.asp"-->
<%
Dim MyConn, ConnStr, rs, dbPath, dbName
dbName = "\" & Right(Request.QueryString("dbpath"), Len(Request.QueryString("dbpath")) - InStrRev(Request.QueryString("dbpath"), "\"))
dbPath = Left(Request.QueryString("dbpath"), Len(Request.QueryString("dbpath")) - Len(dbName))
Call OpenDatabase(MyConn, adModeShareDenyNone, dbPath, dbName)
ConnStr = "SELECT presenterid, program FROM Presenter;"
set rs = MyConn.Execute(ConnStr)
%>
<select name="surveys">
<option>Select Program Survey</option>
<% do while rs.EOF = false %>
<option value=<%=rs("presenterid")%>><%=rs("program")%></option>
<% rs.MoveNext
loop %>
</select>
<% Call Database_Close(MyConn) %>
*********************************************************************
getsurveys.asp output
********************************************************************
<select name="surveys">
<option>Select Program Survey</option>
<option value=37>Program 1</option> -->
<option value=33>Program 2</option>
<option value=34>Program 3</option>
<option value=35>Program 4</option>
<option value=36>Program 5</option>
</select>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Perhaps a typo ?? Your page is called getsurveys.asp, yet you make a request to getsurvey.asp.
ASKER
Thanks for the help. Your solution worked. Also, the typo was in my posting where I labeled the program name.
Hi dyarosh, like to hear what your solution was for your problem.