• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1043
  • Last Modified:

Pass currently selected form field value to CFWINDOW for insert into query.

I am using CFWINDOW to add some records on the fly.  I have have 2 select boxes in a form and 1 select is a child of the other.  When I add a record to the child select using CFWINDOW, I need to pass the parent selects current value to the cfwindow so I can insert it with the new child record.  My problem is, I don't know how to pass that value to the cfwindow.  Here is what I have for code.

I need to get the value of SALE_BUYER_ID and pass it to my insert query somehow.
<!---             Index.cfm             ---->
<cfinclude template="addWindow.cfm">
<cfform name="sale">
<cfselect name="sale_buyer_id" id="sale_buyer_id" size="1" bind="javascript:getSaleBuyers()" bindonload="true" display="sale_buyer_Name" value="sale_buyer_id" selected="#sale.sale_buyer_id#" />
<br />
<select name="sale_buyer_yard_id" id="sale_buyer_yard_id">
<a href="javascript:addSaleBuyerYard();">[add new]</a>
<!---             addWindow.cfm             ---->
<cfajaximport tags="CFWINDOW, CFFORM">
<cfajaxproxy cfc="addWindow" jsclassname="salebuyeryardProxy">
<!--- js functions --->
<script type="text/javascript">
var openWindow = function(name,title,url,options){
 ColdFusion.Window.create(name, title, '', options);
 ColdFusion.navigate(url, name);
<!--- Functions specific to adding a new SALE BUYER YARD --->
var addSaleBuyerYard = function(){ //opens add_Salebuyeryard.cfm page in a cfwindow for adding new auction data
 ColdFusion.Window.create('sale_buyer_yard_id_window', 'Add Sub-Yard', 'add_SaleBuyerYard.cfm', {center:true,height:300,width:380,closable:true,dragable:true,resizable:true,modal:true,initshow:true});
var getSaleBuyerYards = function(){ //uses ajax proxy to populate cfselect
 var p = new salebuyeryardProxy();
 var populate = p.getSaleBuyerYards4cfselect();
 return populate;
var onHideAddSaleBuyerYard = function(name){ //refreshes the cfselect
 ColdFusion.Bind.assignValue('sale_buyer_yard_id', 'value', getSaleBuyerYards());
var onAddNewSuccess = function(name, fcn){ //my generic function to handle newly added data
 ColdFusion.Window.onHide(name, fcn);
 var el_id = name.substr(0,name.indexOf('_window'));
var setNewSelectedOption = function(id){
 var el = document.getElementById(id);
 var arrV = new Array();
 for (var i=0; i<el.options.length; i++){
  if (el.options[i].value == Math.max.apply(Math,arrV)){
<!---             My INSERT query in the add_SaleBuyerYard.cfm page            ---->
<cfquery name="insert" datasource="#request.dsn#">
INSERT INTO sale_buyer_yard
(sale_buyer_id, sale_buyer_yard, sale_buyer_yard_directions)
(#VALUE OF SALE_BUYER_ID#, '#TRIM(UCASE(FORM.sale_buyer_yard))#', '#TRIM(UCASE(FORM.sale_buyer_yard_directions))#')

Open in new window

  • 5
  • 2
1 Solution
since cfwindow is simply creating a div that -looks- like a window you just need to reference the parent id (as a hidden field perhaps?)

you can also pass the value in the Window.create call add_SaleBuyerYard.cfm?parentid=whatever

MFredinAuthor Commented:
Oh perfect. Thanks!!!
MFredinAuthor Commented:
Sorry, I think I closed this question too soon.  Is there a way I could use javascript to find the current value of a select box and add it to the URL when I launch my addSaleBuyerYard(); function?  I'm not very JS savvy, so example code is needed please.
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

MFredinAuthor Commented:
Since it will be grabbing a value, potentially after load since the use will most likely be changing the select box, can this still be done?  
something like this should work

var addSaleBuyerYard = function(){

var param = document.getElementById('sale_buyer_id').value;
 ColdFusion.Window.create('sale_buyer_yard_id_window', 'Add Sub-Yard', 'add_SaleBuyerYard.cfm?sale_buyer_id' + param, {center:true,height:300,width:380,closable:true,dragable:true,resizable:true,modal:true,initshow:true});
MFredinAuthor Commented:
It worked!  One last question... I can create a new one so you can get the points if you want?

I want to do the same type of thing with a cfc...

Here is what my cfc code looks like with the javascript added... obviously I am missing some things.. Can you fill in the blanks so it would work?

Thanks for the help!
<!--- Sale Buyer Yards CFC to fill the cfselect query --->
<cffunction name="getSaleBuyerYards4cfselect" access="remote" returntype="query" output="false">
<cfset var qGetSaleBuyerYards="">
<!--- Get the current value of the parent select box to use in the query --->
var param = document.getElementById('sale_buyer_id').value;
<cfquery name="qGetSaleBuyerYards" datasource="#request.dsn#">
SELECT sale_buyer_yard_id, sale_buyer_yard
FROM sale_buyer_yard
WHERE sale_buyer_id = param
ORDER BY sale_buyer_yard
<cfreturn qGetSaleBuyerYards />

Open in new window

MFredinAuthor Commented:

I created this similar question earlier... just add a comment and I will award the points since you answered it here.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 5
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now