Solved

Building or creating dynamic drop down

Posted on 2011-03-04
11
223 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 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
Why You Need a DevOps Toolchain

IT needs to deliver services with more agility and velocity. IT must roll out application features and innovations faster to keep up with customer demands, which is where a DevOps toolchain steps in. View the infographic to see why you need a DevOps toolchain.

 
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

On Demand Webinar: Networking for the Cloud Era

Did you know SD-WANs can improve network connectivity? Check out this webinar to learn how an SD-WAN simplified, one-click tool can help you migrate and manage data in the cloud.

Question has a verified solution.

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

Today, I was working on some optimization and spam-stopping techniques when I encountered Ben Nadel's post to reduce spam feature using Math (http://www.bennadel.com/blog/197-How-I-Stop-Spammers-On-My-ColdFusion-Blog.htm). While this method is not o…
This is an updated version of a post made on my blog over 3 years ago. It is unfortunately, still very relevant as we continue to see both SQLi (SQL injection) and XSS (cross site scripting) attacks hitting some of the most recognizable website and …
This is a high-level webinar that covers the history of enterprise open source database use. It addresses both the advantages companies see in using open source database technologies, as well as the fears and reservations they might have. In this…
Do you want to know how to make a graph with Microsoft Access? First, create a query with the data for the chart. Then make a blank form and add a chart control. This video also shows how to change what data is displayed on the graph as well as form…

707 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