Solved

Building or creating dynamic drop down

Posted on 2011-03-04
11
220 Views
Last Modified: 2012-06-22
Experts,

I need to build a dynamic dropdown list based on the selection of a other dropdown. Also I don't want to submit
the form since I have other data entry field on my form and don't want to lose the user entered data.
What is the best way to achive it using CF and/or Java Script. An example would really help to save the time since it is kind of urgent.

My first query is : select state from mydatabse.states
My second query is : select counties from mydatabase.counties where state = #state#

Thanks in Advance
0
Comment
Question by:Tpaul_10
  • 4
  • 3
  • 2
  • +2
11 Comments
 
LVL 13

Expert Comment

by:srikanthmadishetti
ID: 35040932
0
 

Author Comment

by:Tpaul_10
ID: 35040993
Thanks for the quick reply and example srikanthmadishetti:
Right now I am not using or don't want to use the CFC. So, can I just use the fuction in that example and build my second drop down in the same page? with regular HTML instead of CFSELCT etc.?
0
 
LVL 39

Accepted Solution

by:
gdemaria earned 450 total points
ID: 35041597

cf_twoselectsrelated

a CF custom tag that creates the javascript for you..

All you do is write a query that has a join between both items you want to display.  For example,  a query "getProducts" is a list of products and the options available to that product (let's say SIZE : small, medium...)

Then you just fill in the fields :
   Name - the form's field name
   Display - the column that will be show to the user in the select tag
   Value - the column that will be the value of the select tag
   emptytext - what should appear when nothing is selected
   selected - the value of the field that should be shown when loaded
   formName - the name of the form the select tags are put into
   htmlBetween - any HTML that you want to appear between the two select tags, for example, maybe they are columns in a table so you would put </td><td> between the tags



<cf_twoselectsrelated query="getProducts"
   name1="product_id"
   name2="size_id"
   display1="productName"
   display2="optionName"
   value1="company_id"
   value2="annuity_id"
   emptyText1="- Select a Product -"
   emptyText2="- Select a Size"
   selected1="#variables.product_id#"
   selected2="#variables.size_id#"
   htmlBetween="</td><td>"
   formName="myForm"
   >

Open in new window

0
DevOps Toolchain Recommendations

Read this Gartner Research Note and discover how your IT organization can automate and optimize DevOps processes using a toolchain architecture.

 
LVL 11

Assisted Solution

by:Brijesh Chauhan
Brijesh Chauhan earned 50 total points
ID: 35043623
>>Right now I am not using or don't want to use the CFC. So, can I just use the fuction in that example and build my second drop down in the same page? with regular HTML instead of CFSELCT etc.?

You can bind it to a CFM.. try below example

your form.cfm

<cfform name="UserForm" method="post" format="html">
  <select name="CategorySearch">
  	<option value="1">Test1</option>
    <option value="2">Test2</option>
   </select> 
   <cfselect width="50" name="SubCategories" bind="url:test.cfm?keyword={CategorySearch}" display="name" value="Aid" />
</cfform>

Open in new window


Create a file test.cfm which will have the query to pull the information for second select

   <cfset Category = queryNew("Aid, name")>
   <cfset queryAddRow(Category,1)>
   <cfset querySetCell(Category,'Aid',1)>
   <cfset querySetCell(Category,'name','Test1')>
   <cfset queryAddRow(Category,1)>
   <cfset querySetCell(Category,'Aid',2)>
   <cfset querySetCell(Category,'name','Test2')>
   

<cfquery name="getCatregory" dbtype="query">
	select Aid, name
    from Category
    where Aid = #url.keyword#
</cfquery>

<cfoutput>
#serializeJSON(getCatregory)#
</cfoutput>

Open in new window

0
 
LVL 13

Expert Comment

by:srikanthmadishetti
ID: 35044232
@brijesh Good to see you in EE :)

@Tpaul
>>>Right now I am not using or don't want to use the CFC. So, can I just use the fuction in that example and build my second drop down in the same page? with regular HTML instead of CFSELCT etc.?


Is there any specific reason for not using the cfselect or cfc

First it will be just few lines of code and second cfc will help you to reuse this code any where .

You can use it any form which has the state and country drop downs .

0
 
LVL 16

Expert Comment

by:Gurpreet Singh Randhawa
ID: 35054410
0
 

Author Comment

by:Tpaul_10
ID: 35079795
I have old cold fusion code and the site is going away soon. So, no CFCs and don't want to spend money for buying the code -:(

I may look in to writing a custom tag, but need to find out if the tables are related to have one query.
May be an example would be helpful.

0
 
LVL 39

Expert Comment

by:gdemaria
ID: 35083361
I provided you with a custom tag:   cf_twoselectsrelated

 http://projects.nateweiss.com/nwdc/workcode.htm

> but need to find out if the tables are related to have one query

The would have to be related, wouldn't they?   Otherwise, you don't need two related select tags, you could just do two distinctly seperate tags, right?

0
 

Author Comment

by:Tpaul_10
ID: 35225709
Sorry about the delay and Thanks for all your inputs.
I was able to created a custom tag successfully with the exaple provided by gdemaria. THANKS.

now the problem is , if I go bak and edit my order, I should be able to pre-select the options which I have selected originally like following.
<option value="#myvalue#" <cfif #ListFind(preselectedValue,query2.value1)#> #SELECTED</cfif>>#myvalue#</option>                   

I am going to try it by adding another parameters to my customtag and use the similar condition like above. But if you have a better solution, please update me.

Thanks
0
 
LVL 39

Expert Comment

by:gdemaria
ID: 35226667
the custom tag has two parameters selected1 and selected2 representing the current values of the two select tags
0
 

Author Comment

by:Tpaul_10
ID: 35285907
THANKS gdemaria.
Based on my requirements, your answer gave me the complete solution eventhough others have provided with different soluctions
0

Featured Post

Master Your Team's Linux and Cloud Stack

Come see why top tech companies like Mailchimp and Media Temple use Linux Academy to build their employee training programs.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The technique is by far very Simple! How we can export the ColdFusion query results to DOC file?  Well before writing this I researched a lot in Internet but did not found a good Answer anyways!  So i thought now i should share my small snippet w…
I spent nearly three days trying to figure out how incorporate OAuth in Coldfusion for the Eventful API. Hopefully, this article will allow Coldfusion Programmers to buzz through the API when they need to. Basically, what this script does is authori…
This Micro Tutorial will teach you how to censor certain areas of your screen. The example in this video will show a little boy's face being blurred. This will be demonstrated using Adobe Premiere Pro CS6.
Windows 10 is mostly good. However the one thing that annoys me is how many clicks you have to do to dial a VPN connection. You have to go to settings from the start menu, (2 clicks), Network and Internet (1 click), Click VPN (another click) then fi…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question