You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

165 lines
4.3 KiB
Plaintext

Display States according to Country selection...
------we should have two tables in sql-------
table: tblcountry
create table tblcountry
(
countryid varchar(20) primary key,
country varchar(20)
)
insert into tblcountry values('1','Canada')
insert into tblcountry values('2','USA')
insert into tblcountry values('3','Nepal')
table: tblState
create table tblstate
(
stateid varchar(20) primary key,
state varchar(20),
countryid varchar(20) foreign key references tblcountry(countryid)
)
insert into tblstate values('1','Alaska','2')
insert into tblstate values('2','Puerto Rico','2')
insert into tblstate values('3','Saint Thomas','2')
--------------run above codes on sql-------------
------------------------------------------------------->
<!-------real coding goes from here-------------------->
<!--#include file="adovbs.inc"-->
<%
ConnString="Provider=SQLOLEDB.1;Persist Security Info=False;"
ConnString=ConnString & "User ID=sa;Initial Catalog=master;"
ConnString=ConnString & "Data Source=computername"
'give your computer name instead of computername
'on "Data Source=computername" on above string
Set Conn=server.createobject("ADODB.Connection")
Conn.open ConnString
Set rs=Server.CreateObject("ADODB.RECORDSET")
rs.Open "select * from tblstate",Conn,3
Response.write "<script language=javascript>"& vbcrlf
Response.write "var i=0;" & vbcrlf
Response.write "stateIDList=new Array();" & vbcrlf
Response.write "statelists=new Array();" & vbcrlf
for i=0 to rs.RecordCount-1
Response.write "stateIDList["&i&"]='" & rs("countryid") & "';" & vbcrlf
Response.write "statelists["&i&"]='" & rs("state") & "';" & vbcrlf
rs.MoveNext
Next
rs.Close
Response.write vbcrlf & "</script>"
strSQL="select * from tblcountry order by country"
rs.Open strSQL,Conn
StrCountry=rs("countryid")
Set rsstate=server.createobject("ADODB.RECORDSET")
rsstate.CursorLocation=adUseClient
strSQL="select * from tblstate where countryid='" & StrCountry & "'"
rsstate.Open strSQL,Conn
%>
<html>
<body>
<form name=frm>
<tr height=25>
<td width=90 class=dblue>
<font face="Verdana, Arial, Helvetica" size="1" color="darkblue">
Country
</font>
</td>
<td width="180">
<font face=verdana,arial size=1.8>
<select name=cmbcountry onchange="javascript:Loadstate()">
<Option value="">---------- Select Country --------</Option>
<% For i=1 to rs.RecordCount %>
<Option value="<%=rs.Fields("countryid")%>"
<%if cint(rs("countryid"))=cint(StrCountry) then%>Selected<%End if%>>
<%=rs.Fields("country")%>
</Option>
<%rs.MoveNext
Next
rs.Close
%>
</select>
</font>
</td>
<td width=90 class=dblue>
<font face="Verdana, Arial, Helvetica" size="1" color="darkblue">
State/Province</font>
</td>
<td class=dblue width="200">
<select name="cmbstate" onchange="javascript:BlankState()">
<%if rsstate.RecordCount<>0 then%>
<%Do while not rsstate.EOF%>
<option value="<%=rsstate("stateid")%>"><%=rsstate("state")%></option>
<%rsstate.movenext
loop
else
%>
<option value="">------- County/State N/A -------</option>
<%end if%>
</select>
<%
rsstate.close
Set RsState=nothing
Conn.close
Set Conn=nothing
%>
</td>
</tr>
</form>
</body>
</html>
<Script language=javascript>
var k=100;
var m;
function clear_dropdowns()
{
document.frm.cmbstate.options[0] = new Option('---------------','')
document.frm.cmbstate.selectedIndex=0
}
function Loadstate()
{
clear_dropdowns();
StatesValue=new Array();
for (var i=k;0<=i;i--)
document.frm.cmbstate.options[i]=null;
m=0;
for(j=0;j<stateIDList.length;j++)
{
if(document.frm.cmbcountry
[document.frm.cmbcountry.selectedIndex].value==stateIDList[j])
{
StatesValue[m]=statelists[j];
m++;
}
}
if(m==0)
document.frm.cmbstate.options
[m]=new Option('------- County/State N/A -------','');
else
{
for(k=0;k<StatesValue.length;k++)
document.frm.cmbstate.options
[k]=new Option(StatesValue[k],StatesValue[k]);
document.frm.cmbstate.options[k]=new Option(' ',' ');
}
}
function BlankState()
{
if(document.frm.cmbstate.value==" ")
document.frm.cmbstate.selectedIndex=0;
}
</Script>