?
Solved

Use of Arrays with <CF_TwoSelectsRelated>

Posted on 2004-04-30
4
Medium Priority
?
401 Views
Last Modified: 2013-12-24
I am using the custom tag <CF_TwoSelectsRelated> and it seems to work fine if the parameters, Name1 and Name2, are simple variables.  However, if I try to use array elements (see below), I get an IE Script Error.  That is, the following code works fine:

<CF_TwoSelectsRelated
                    query="qryGetContacts"
      Name1="AssignedToOrg1"
      Name2="ContactID1"

The following code gets the script error and results in no choices in the second select:

<CF_TwoSelectsRelated
      query="qryGetContacts"
      Name1="AssignedToOrg[1]"
      Name2="ContactID[1]"

Can I use (or modify) the custom tag to accomodate the use of array elements?
0
Comment
Question by:Rich0507
[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
  • 2
4 Comments
 
LVL 35

Expert Comment

by:mrichmon
ID: 10962549
You cannot use an array here because the Name1 and Name2 are query columns.  So I am not sure what you are trying to do.

If you want to write the tag on your own you can.  It would be like this (example for selecting a person - Buyer -  based on a department) :

<script type="text/javascript" language="JavaScript">
<!--
/* Dynamically populate Buyer select box based on seleted DepartmentID */
// Create an array to hold Buyers
var BuyerArray = new Array;

// Define a custom Javascript object type to represent a single Buyer
function Buyer(BuyerUsername, DepartmentID, BuyerName)
{
      this.BuyerUsername = BuyerUsername;
      this.DepartmentID = DepartmentID;
      this.BuyerName = BuyerName;
}
<!--- For each Buyer, append a new Buyer object to the array of Buyers --->
<cfoutput query="GetBuyers">
      BuyerArray[BuyerArray.length] = new Buyer("#JSStringFormat(Username)#", "#JSStringFormat(DepartmentID)#", "#JSStringFormat(BuyerName)#");
</cfoutput>

/* Fill the Buyer select box based on the DepartmentID */
function fillBuyers()
{
      // Stop if there is no selected ParentID
      if (document.AddIssue.DepartmentID.selectedIndex == -1)
      {
            return;
      }
      
      var DepartmentID = document.AddIssue.DepartmentID.options[document.AddIssue.DepartmentID.selectedIndex].value;
      
      // Remove all options in the Buyer select box
      document.AddIssue.Buyer.options.length = 0;
      
      // For each item in the Buyer array ...
      for (var i = 0; i < BuyerArray.length; i++)
      {
            // If the Buyer's DepartmentID is the same as the currently selected DepartmentID
            if (BuyerArray[i].DepartmentID == DepartmentID)
            {
                  // Put a new option in the Buyer select box
                  document.AddIssue.Buyer.options[document.AddIssue.Buyer.options.length] = new Option(BuyerArray[i].BuyerName, BuyerArray[i].BuyerUsername);
            }
      }
}
-->
</script>


<select name="DepartmentID" onChange="fillBuyers()" style="width: 200px;">
      <option value=""></option>
      <option value="GM">General Merchandise</option>
      <option value="TR">Trade</option>
      <option value="TX">Text</option>
</select>

<select name="Buyer" style="width: 200px;"></select>
0
 

Author Comment

by:Rich0507
ID: 10963216
According to the documentation for the custom tag, <CF_TwoSelectsRelated>:  "NAME1 and NAME2 are the names of the two SELECT list elements to be included on the form. The SELECT element with NAME1 will appear first on the page, and the one with NAME2 will be second. For instance, if you use NAME2="Selection", then whatever the user chooses in the second SELECT will be available to for your use as #Form.Selection# in the next template."  [NOTE: there is no mention that these elements are or must be query column names.]

I am creating a form with multiple lines, and would like to capture these multiple lines of data in an array.  So I want to create a loop where I repeatedly invoke the <CF_TwoSelectsRelated> tag.  And I want to capture the users choices (from multiple boxes) in an array (Selection[1], Selection[2] rather than in multiple single variables (Selection1, Selection2).  I am not proficient in javascript, so I didn't understand the solution that was recommended.
0
 
LVL 35

Accepted Solution

by:
mrichmon earned 1000 total points
ID: 10963252
Oh whoops you are right I meant select box names not query column names.  Sorry.

It is still the same principle - you need to use a simple name for the select.  It cannot be named an array cell.

You cannot caputre the results inro an array.

If yyou name them the same they will be submitted as a comma delimited list.

Or the alternative is to name them sequesntially then in cold fusion when youprocess the form you can put them intoa an array in COLD FUSION - not javascript and then continue to process as an array.
0

Featured Post

Enroll in August's Course of the Month

August's CompTIA IT Fundamentals course includes 19 hours of basic computer principle modules and prepares you for the certification exam. It's free for Premium Members, Team Accounts, and Qualified Experts!

Question has a verified solution.

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

Introduction This article explores the design of a cache system that can improve the performance of a web site or web application.  The assumption is that the web site has many more “read” operations than “write” operations (this is commonly the ca…
When it comes to security, close monitoring is a must. According to WhiteHat Security annual report, a substantial number of all web applications are vulnerable always. Monitis offers a new product - fully-featured Website security monitoring and pr…
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.
Add bar graphs to Access queries using Unicode block characters. Graphs appear on every record in the color you want. Give life to numbers. Hopes this gives you ideas on visualizing your data in new ways ~ Create a calculated field in a query: …
Suggested Courses

771 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