you can fill combo boxes dynamically without submitting the page using java script arrays. try with below code.
<%
dim con,rsCatg,catgCnt,rsProducts,prodCnt
set con=server.CreateObject("adodb.connection")
set rsCatg=server.CreateObject("adodb.recordset")
set rsProducts=server.CreateObject("adodb.recordset")
con.ConnectionString ="provider=sqloledb.1;data source=astrodev;initial catalog=northwind;user id=sa;pwd=sa"
con.Open
rsCatg.Open "select * from categories where categoryid=5 or categoryid=6",con,3
rsProducts.Open "select * from products where categoryid=5 or categoryid=6 order by categoryid,productid",con,3
catgCnt = rsCatg.RecordCount
prodCnt = rsProducts.RecordCount
%>
<HTML>
<HEAD>
<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">
</HEAD>
<BODY>
<script language=javascript>
var catgindx,prodindx;
catgindx =0;
prodindx=0;
var catgarr=new Array(<%=catgCnt%>);
for(k=0;k<=<%=catgcnt%>;k++)
catgarr[k]=new Array();
<%dim tempcatgid
tempcatgid=rsProducts("categoryid")
for i=0 to rsProducts.RecordCount-1
if cstr(tempcatgid)<> cstr(rsProducts("categoryid")) then
tempcatgid=rsProducts("categoryid") %>
catgindx=catgindx+1
prodindx=0;
<%end if%>
//alert('product id:' + '<%=rsProducts("productid")%>')
catgarr[catgindx][prodindx]=new Option("<%=rsProducts("ProductName")%>",'<%=rsProd ucts("productid")%>');
prodindx=prodindx+1;
<%rsProducts.movenext
Next%>
function fillProducts()
{
var catgid;
catgid=document.frmpost.cmbCatg.selectedIndex ;
catgid=catgid-1;
if(document.frmpost.cmbCatg.selectedIndex==0)
{
for(i=0;i<document.frmpost.cmbProd.options.length; i++)
document.frmpost.cmbProd.options[i+1]=null
}
for (i=0;i<catgarr[catgid].length;i++)
{
document.frmpost.cmbProd.options[i+1]=new Option(catgarr[catgid][i].text,catgarr[catgid][i].value)
}
document.frmpost.cmbProd.options[0].selected=true
}
</script>
<form name=frmpost method=post>
<select name=cmbCatg onchange="javascript:fillProducts();">
<option value=0>- -Select Category- -</option>
<% While not rsCatg.EOF %>
<option value=<%=rsCatg(0)%>><%=rsCatg(1)%></option>
<% rsCatg.MoveNext
Wend%>
</select>
<select name=cmbProd>
<option value=0>- -Select Product- -</option>
</select>
</form>
</BODY>
</HTML>
|