5,696,038 members and growing! (13,874 online)
Email Password   helpLost your password?
Web Development » Client side scripting » General     Intermediate

Creating a Dynamic Combo Box w/o Refreshing Page

By 'Anil' Radhakrishna

..using IFRAME.
JavascriptNT4, Win2K, WinXP, Windows, ASP, Visual Studio, Dev

Posted: 8 Nov 2002
Updated: 30 Jul 2003
Views: 124,012
Bookmarked: 27 times
Announcements
Loading...



Search    
Advanced Search
Sitemap
29 votes for this Article.
Popularity: 6.15 Rating: 4.21 out of 5
2 votes, 7.1%
1
1 vote, 3.6%
2
3 votes, 10.7%
3
5 votes, 17.9%
4
17 votes, 60.7%
5

Introduction

Forms involving a dynamically-linked combo box have to waste a server-trip to fetch the values from the database to populate that combo box based on the value of a dependent combo box. Links to a number of approaches to handle dynamically-linked lists are listed in Charles Carol's excellent online book here. I discovered a cross-browser (well almost cross-browser ;-). I tested the code in IE 5, Netscape 6 & 7 and Mozilla 1.0 & it worked fine. IFRAME is not supported in NN 4.x and lower) method to populate a dynamically-linked List Box without refreshing the page, by using the IFRAME tag.

On selecting a country from the first combo box, the cities in that country, retrieved from the database are populated into the second combo. The second combo is actually present inside a frame-border-less IFRAME. A teeny-weeny JavaScript function allows the value of the combo box to be available to the outer form & be submitted.

The source code

The zipped source code file consists of 2 ASP files - where.asp & cities.asp & a MDB file City.mdb containing a table of countries & cities.

where.asp is the page that you have to load first, using IIS. It has a reference to the cities.asp page through the IFRAME.

Here's the teeny-weeny function in where.asp that enables the combo box present in the form in the IFRAME to be accessed by the parent form:

function getIframe()
{
//to access the element in the Form 

//contained in the page called by the IFrame, use

//parent.iframeName.document.iframeFormName.field.value

//here the IFrame element is assigned to the 

//hidden variable city in the parent Form


document.form1.city.value=parent.Iframe1.document.form2.elements[0].value;

}

The city element referred in the script above is a hidden tag.

When a country name is chosen from the combo box, the selected value is passed as a querystring to cities.asp.

<select 
   onchange='document.getElementById("Iframe1").src="cities.asp?country="+
   this.value'>

It refers to the following IFRAME defined in the same page.

<IFRAME id="Iframe1" name='Iframe1' 
  FRAMEBORDER=0 SCROLLING='no' WIDTH=120 HEIGHT=40></IFRAME>

Check this Microsoft link for an insight into the IFRAME tag. If you're impressed with what can be done with IFRAME, take a look at Searchlite v2. Also take a look at two other related articles:

Links

Feedback

Let me know if this article is a killer or a dud. Or whatever you felt.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

About the Author

'Anil' Radhakrishna


'Anil' Radhakrishna is a seasoned developer and a Microsoft MVP (ASP/ASP.NET). He blogs his little discoveries and Web development tips, tricks and trivia quite regularly. You can find some of his unusual code samples & snippets at his Code Gallery.

Occupation: Web Developer
Location: India India

Other popular Client side scripting articles:

Article Top
Sign Up to vote for this article
You must Sign In to use this message board.
FAQ FAQ Noise ToleranceSearch Search Messages 
 Layout  Per page   
 Msgs 1 to 12 of 12 (Total in Forum: 12) (Refresh)FirstPrevNext
GeneralCan you help me out by doing the same With PHPmemberarunudu2:07 14 Dec '07  
Generalcan you upgrade this in asp.netmemberpabidi2:33 27 Jun '07  
GeneralExpansion to 3 combo boxmembergeervanibs21:16 4 Jun '07  
GeneralThanks 4 thismemberCristiano Shrestha20:06 22 May '07  
QuestionHow to expand the select box to be 3 or more select box???memberneo_msi2023:05 2 May '07  
GeneralThanks so much! [modified]memberenfleshjsc6:05 29 Mar '07  
GeneralHow do i extend it to three combo boxesmemberbibha7:15 8 Aug '03  
GeneralRe: How do i extend it to three combo boxesmembergeervanibs21:25 4 Jun '07  
GeneralYou have a creative solution but...memberkbuchan3:19 4 Aug '03  
GeneralRe: You have a creative solution but...memberRichard Deeming23:56 4 Aug '03  
GeneralJSPsussJuan Carlos Montenegro6:45 18 Dec '02  
Generalsometinh differentmembertommy skaue1:18 12 Nov '02  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 30 Jul 2003
Editor: Smitha Vijayan
Copyright 2002 by 'Anil' Radhakrishna
Everything else Copyright © CodeProject, 1999-2008
Web08 | Advertise on the Code Project