Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
?
Solved

Use of Arrays with <CF_TwoSelectsRelated>

Posted on 2004-04-30
4
Medium Priority
?
412 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
  • 2
3 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

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Question has a verified solution.

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

Periodically we have to update or add SSL certificates for customers. Depending upon your hosting plan you may be responsible for the installation and/or key generation. In the wake of Heartbleed many sites were forced to re-key. We will concen…
Lease-to-own eliminates the expenditure of hardware replacement and allows you to pay off the server over time. Usually, this is much cheaper than leasing servers. Think of lease-to-own as credit without interest.
When cloud platforms entered the scene, users and companies jumped on board to take advantage of the many benefits, like the ability to work and connect with company information from various locations. What many didn't foresee was the increased risk…
Is your OST file inaccessible, Need to transfer OST file from one computer to another? Want to convert OST file to PST? If the answer to any of the above question is yes, then look no further. With the help of Stellar OST to PST Converter, you can e…
Suggested Courses
Course of the Month12 days, 11 hours left to enroll

578 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