Advertisement

10.13.2008 at 04:36AM PDT, ID: 23809170 | Points: 500
[x]
Attachment Details

Dynamic menus using onchange and databases.

Asked by Uribname in ColdFusion Application Server, Databases Miscellaneous, MySQL Server

Tags:

Im currently trying to program a website for a car leasing company, what Im trying to achieve is when a customer selects a manufacturer they get a drop down list with all the model names from that manufacturer, when they select a model they then get a drop down list with the specification for that model and once they have done that they get a drop down list containing all the extras they can select for that model. Its database driven and Ive toyed around with javascript and arrays and the onChange function but Im at a loss.
Im trying coldfusion coding now and this is my code so far;

this code's more complex and it reloads the page/database every time a selection is made (don't know if that's going to cause me problems at a later date ), but it seems to be working ok so far, the only javascript I'm using now is onChange "this.form.submit ()". I've managed to create two boxes that carry a varchar variable over not a primary key, so it knows what it's looking for now, as apposed to earlier.
The next problem I think Im going to encounter is setting numeric values for the selections.  Dont know how to have a figure behind the selection, because this is going to be a calculator basically, I need each option to hold a numeric value that will be calculated on the form submit.  Any ideas?  Im going to have to hold the numeric values in the database as theyre going to need updating (going to have an admin system along side this), but dont know where to pull them through in the code.
Obviously Ill have to include another column in the database to hold the number values, so if you know where to put them in the code Ill make the relevant changes to the db.
Start Free Trial
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
<cfif isDefined('form.select_manufacturervar')>
    <cfset page.select_manufacturervar = form.select_manufacturervar>
</cfif>
<cfoutput>
  <form name="DropDown" method="post">
  <!--- DB for the first drop down list --->
  <cfquery name="rsQuotemanufacturer" datasource="quote-system">
     SELECT *
     FROM manufacturer_table
  </cfquery>
 
 
  <!--- first drop down list --->
  <select name="select_manufacturervar" required="yes" onchange="this.form.submit()">
     <option>Select Manufacturer</option>
     <cfloop query="rsQuotemanufacturer">
         <option value="#manufacturer_ID#" <cfif isDefined('form.select_manufacturervar')><cfif form.select_manufacturervar eq "#manufacturer_ID#">selected</cfif></cfif>>#manufacturer_ID#</option>
     </cfloop>
</select>
<p>
<cfif isDefined('page.select_manufacturervar')>
   <!--- DB query for second drop down list --->
   <cfquery name="rsQuotemodel" datasource="quote-system">
        SELECT *
        FROM model_table
        WHERE sub_manufacturer_ID = <cfqueryparam value="#page.select_manufacturervar#" cfsqltype="cf_sql_varchar">
   </cfquery>
 
 
   <!--- second drop down list --->
   <select name="select_Model" required="yes" onchange="this.form.submit()">
      <option>Select Model</option>
       <cfloop query="rsQuotemodel">
         <option value="#model_ID#" <cfif isDefined('form.select_modelvar')><cfif form.select_modelvar eq "#model_ID#">selected</cfif></cfif>>#model_ID#</option>
     </cfloop>
</select>
</cfif>
<p>
<cfif isDefined('page.select_modelvar')>
      <cfloop query="rsQuotemodel">
         <option value="#model_ID#">#model_ID#</option>
      </cfloop>
   </select>
</cfif>
<!-- third drop down box --->
    <cfif isDefined('page.select_modelrvar')>
   
   <cfquery name="rsQuotemodel" datasource="quote-system">
        SELECT *
        FROM model_table
        WHERE sub_manufacturer_ID = <cfqueryparam value="#page.select_modelvar#" cfsqltype="cf_sql_varchar">
   </cfquery>
 
 
   <!--- second drop down list --->
   <select name="select_Model" required="yes" onchange="this.form.submit()">
      <option>Select Model</option>
       <cfloop query="rsQuotemodel">
         <option value="#model_ID#" <cfif isDefined('form.select_modelvar')><cfif form.select_modelvar eq "#model_ID#">selected</cfif></cfif>>#model_ID#</option>
     </cfloop>
</select>
</cfif>
<p>
<!--- if the first selection has been made, display the second drop down list with the appropriate results --->
<cfif isDefined('page.select_modelvar')>
      <!--- dynamically populate the second drop down list based on the get_Sub_Group query --->
      <cfloop query="rsQuotemodel">
         <option value="#model_ID#">#model_ID#</option>
      </cfloop>
   </select>
</cfif>
 
 
 
</form>
</cfoutput>
[+][-]10.13.2008 at 07:50AM PDT, ID: 22702883

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 14-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]10.14.2008 at 02:17AM PDT, ID: 22709669

Often, when Experts are collaborating with members who have asked questions, they will request additional information about the problem. Askers respond with an author comment like this one.

Start your 14-day free trial to view this Author Comment or ask the Experts your question.

 
[+][-]10.15.2008 at 07:12AM PDT, ID: 22721268

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 14-day free trial to view this Expert Comment or ask the Experts your question.

 
[+][-]10.16.2008 at 03:57PM PDT, ID: 22736557

At Experts Exchange, members can ask their questions to thousands of technology professionals, also known as Experts. Experts compete and collaborate to answer those questions by leaving comments like this one.

Start your 14-day free trial to view this Expert Comment or ask the Experts your question.

 
 
Loading Advertisement...
20081112-EE-VQP-43 / EE_QW_2_20070628