Solved

CFinput, use the onclick method to do a cfset of a CF variable

Posted on 2004-03-25
11
1,221 Views
Last Modified: 2013-12-24

I have this cfinput statement in a table so that I get as many rows as there are records in my query result.

<cfinput type="radio" name="SelectedDepartment" value= "#CountDepartmentStatus.DepartmentCode#" >

I would like to add the onclick option to it and  have the javascript routine do the following cfset.

<cfset client.DepartmentCode=CountDepartmentStatus.DepartmentCode>

Is there a way to execute a cfset from the onclick method of a cfinput?

Thanks,
WS
0
Comment
Question by:Waterstone
  • 5
  • 4
  • 2
11 Comments
 
LVL 17

Expert Comment

by:Tacobell777
ID: 10683739
You can only call CF via JavaScript if you would call another document.

What is it exactly that you want to do?

Do you want to pass the selected option back to CF?

<form method="post" action="somefile.cfm">
<cfinput type="radio" name="SelectedDepartment" value= "#CountDepartmentStatus.DepartmentCode#" >
<input type="submit" value="submit">
</form>

Then in somefile.cfm you will have

<cfset client.DepartmentCode=form.SelectedDepartment>
0
 

Author Comment

by:Waterstone
ID: 10683881


I was hoping to set the cf variable without leaving the document.
0
 
LVL 5

Expert Comment

by:Seth_Bienek
ID: 10684490
Hi WS,

What are you wanting to do once the value is set?  Go to the results page?  Let the user make other selections, then hit a button for the results?

Tell us what you are wanting to accomplish and we can explain the best approach.

Take Care,

Seth
0
 
LVL 17

Expert Comment

by:Tacobell777
ID: 10685005
You can only do that if you use hidden frames or Iframes....
0
 

Author Comment

by:Waterstone
ID: 10686058


Good Morning,

I'd like to set the value and reset the value as desired, then allow the user to select from the navbar menu to go to a number of different pages.

The navbar contains graphics as menu items that are consistent with the rest of the site. Forms restrict me to a standard button look that violates the design of the site.

Never used hidden frames or I frames.

WS
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 
LVL 5

Accepted Solution

by:
Seth_Bienek earned 500 total points
ID: 10687905
WS,

I think that what you are trying to do is set a client (server-side) variable using javascript (clientside).

The two easiest approaches to doing this are to either use javascript to forward the user to the next page with a URL param, where the value can be saved as a client variable:
<cfinput type="radio" name="SelectedDepartment" value= "#CountDepartmentStatus.DepartmentCode#" onclick="location.replace('#cgi.script_name#?DepartmentCode=#CountDepartmentStatus.DepartmentCode#');">
As a side note - this onclick event can be used with many different element types, not just form elements.  You can use it in a hyperlink, image, etc.

The other easy approach would be to set a cookie using javascript - then you can access the cookie from later pages using <cfcookie>, or use <cfcookie> to read the value in and save it as a client variable. Just remember that cookie values are stored as text files on the client machine, so you wouldn
t want to use this approach for saving sensitive information.

<cfinput type="radio" name="SelectedDepartment" value= "#CountDepartmentStatus.DepartmentCode#" onclick="SetCookie('DepartmentCode', '#CountDepartmentStatus.DepartmentCode#', 1);">
You'll have to add the SetCookie function do your document within the <head> tags for this approach:
http://www.javascripter.net/faq/settinga.htm

I hope this will give you some ideas for coming up with a solution.  Let us know if we are still not understanding the problem correctly.

Regards,

Seth
0
 

Author Comment

by:Waterstone
ID: 10689963


Seth,

It looks like cookies will be the best solution for this problem.  Do you know of any examples of using cfcookie to read a cookie?

Thanks,
Stece
0
 
LVL 17

Expert Comment

by:Tacobell777
ID: 10691223
Cookies are not the best solution, for variables that you want to store CLIENT. is the best storage, as it is on your side. The cookie should only store cfid and cftoken which reveals nothing important.

But good luck anyway.
0
 

Author Comment

by:Waterstone
ID: 10691412
I agree that cookies are not ideal, but they allow me to pass a simple variable to the next form no matter what that form is.  It's a solution for a small percentage of the users and the value get's passed to a Client variable as soon as that next form loads.  If there was a way to do a cfset from a radio button it would be ideal, but I'll have to settle for less-than-ideal but functional, unless you know of a better way.

Thanks again for you input.

WS
0
 
LVL 17

Expert Comment

by:Tacobell777
ID: 10691562
The way you are setting a cookie will be the same as I suggested to set a client variable.
You should use client variables for settings you like to store for a long period of time ( but not permenant) you should use session variables for variables that exists only throughout the users session.
0
 

Author Comment

by:Waterstone
ID: 10692155


Well, it doesn't seem to be the same to me because setting the client variable seems to require that I use the form's submit button to call the other form.  Is this accurate or am I missing something?
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Most ColdFusion developers get confused between the CFSet, Duplicate, and Structcopy methods of copying a Structure, especially which one to use when. This Article will explain the differences in the approaches with examples; therefore, after readin…
Article by: kevp75
Hey folks, 'bout time for me to come around with a little tip. Thanks to IIS 7.5 Extensions and Microsoft (well... really Windows 8, and IIS 8 I guess...), we can now prime our Application Pools, when IIS starts. Now, though it would be nice t…
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.
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…

758 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

21 Experts available now in Live!

Get 1:1 Help Now