Solved

Take variables and set new ones based on variable values

Posted on 2003-10-27
8
130 Views
Last Modified: 2013-12-24
I have a form like this:

<input type="Text" name="OtherProject" required="No" size="1" maxlength="3" value="">
<CFLOOP from="100" to="750" step="50" index="taskID">
  <input type="Text" name="task#taskID#_Other" required="No" size="1" maxlength="4" value="">
</CFLOOP>

As you can see the second form field is inside of a loop, so it generates an array of 14 fields.

So for example the first form would be passed as such:

form.OtherProject=400

And the second as such:

form.task100_Other=5
form.task450_Other=2.5
form.task500_Other=11

So what I need is for the recieving file to set variables where Other is replaced by the number passed by form.OtherProject:

form.task100_400=5
form.task450_400=2.5
form.task500_400=11

Notice how some of the second form fields are left blank in my example, it should be programmed so that is ok.

Thank you for your help.
0
Comment
Question by:Max_Davis
8 Comments
 
LVL 6

Expert Comment

by:PE_CF_DEV
Comment Utility
I don't think I understnad exactly what you want here...

After the form is submited you want to then make a new form with the names task450_400? Or you want to be able to access form.task100_400?

Maybe any code you have available would help us understand it?

0
 
LVL 9

Expert Comment

by:shooksm
Comment Utility
On the receiving page:

<CFLOOP from="100" to="750" step="50" index="taskID">
     <CFIF IsDefined("FORM.task#taskID#_Other") EQ True>
          <CFSET "FORM.task#taskID#_#FORM.OtherProject#" = Evaluate("FORM.task#taskID#_Other")>
     </CFIF>
</CFLOOP>
0
 
LVL 12

Expert Comment

by:jyokum
Comment Utility
i think it would be easier if you didn't use _Other on your original form, then you could just append the OtherProject value rather than trying to replace part of a variable name

<!--- page1.cfm --->
<cfoutput>
<form name="frmData" action="page2.cfm" method="post">
Other Project<input type="Text" name="OtherProject" required="No" size="1" maxlength="3" value=""><br>
<cfloop from="100" to="750" step="50" index="taskID">
  <input type="Text" name="task#taskID#" required="No" size="1" maxlength="4" value=""><br>
</cfloop>
<input type="submit">
</form>
</cfoutput>


<!--- page2.cfm --->
<cfloop from="100" to="750" step="50" index="taskID">
  <cfif isDefined('form.task#taskID#')>
  <input type="Text" name="task#taskID#_#form.OtherProject#" required="No" size="1" maxlength="4" value=""><br>
  </cfif>
</cfloop>
0
 
LVL 17

Expert Comment

by:anandkp
Comment Utility
if i understand u correctly - this shld help

run a loop on the submitted page as :

<CFLOOP FROM="100" TO="750" STEP="50" INDEX="taskID">
      <CFIF ISDEFINED('TASK#TASKID#_OTHER') AND LEN(TRIM(EVALUATE('TASK#TASKID#_OTHER')))>            
            #task#taskID#_Other# = #evaluate('task#taskID#_Other')#<BR>
      </CFIF>
</CFLOOP>

& see what output u get [it will pring only those form fields that u have NOT left blank]

let me know ...

K'Rgds
Anand
0
PRTG Network Monitor: Intuitive Network Monitoring

Network Monitoring is essential to ensure that computer systems and network devices are running. Use PRTG to monitor LANs, servers, websites, applications and devices, bandwidth, virtual environments, remote systems, IoT, and many more. PRTG is easy to set up & use.

 
LVL 18

Expert Comment

by:Plucka
Comment Utility
I think you want to use dynamic variables. When setting dynamic variables it's easy.

Ie

<cfset Test = "Hello">
<cfset "More#Test#" = "There">

<cfoutput>#MoreHello#</cfoutput>

To check for existance or value of a dynamic variable, you need to use IsDefined & evaluate.

Ie

<cfif IsDefined("More#Test#")>
    The variable MoreHello is defined.
</cfif>

<cfif Evaluate("More#Test#") eq "There">
    Yes we can do logical comparrisons!
</cfif>
0
 
LVL 4

Expert Comment

by:procept
Comment Utility
Hi,

if I understand you correctly, you want to set the new variables only if the "_other" vars are not empty? The following code will do that:

<cfloop collection="#form#" item="field">
   <cfif right(field, 6) EQ "_Other">
      <cfif len(trim(form[field]))>
         <cfset form[replaceNoCase(field, "other", taskID, "ALL")] = form[field]>
      </cfif>
   </cfif>
</cfloop>
0
 
LVL 9

Accepted Solution

by:
CFDevHead earned 200 total points
Comment Utility
<cfif IsDefined("OtherProject")>
<CFLOOP from="100" to="750" step="50" index="taskID">
      <cfif ISDEFINED('TASK#TASKID#_OTHER') AND LEN(TRIM(EVALUATE('TASK#TASKID#_OTHER')))>          
          <cfset temp=evaluate('task#taskID#_Other='& #evaluate('task#taskID#_Other')#)>
     </cfif>
</CFLOOP>
      </cfif>
0
 
LVL 17

Expert Comment

by:anandkp
Comment Utility
weird !
0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

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 showing a 404 error page to your visitors, you do not want that generic page to show, and you especially do not want your hosting provider’s ad error page to show either. In this article, I will show you how to enable the custom 40…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…

762 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

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now