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

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1293
  • Last Modified:

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


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
Waterstone
Asked:
Waterstone
  • 5
  • 4
  • 2
1 Solution
 
Tacobell777Commented:
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
 
WaterstoneAuthor Commented:


I was hoping to set the cf variable without leaving the document.
0
 
Seth_BienekCommented:
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
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.

 
Tacobell777Commented:
You can only do that if you use hidden frames or Iframes....
0
 
WaterstoneAuthor Commented:


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
 
Seth_BienekCommented:
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
 
WaterstoneAuthor Commented:


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
 
Tacobell777Commented:
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
 
WaterstoneAuthor Commented:
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
 
Tacobell777Commented:
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
 
WaterstoneAuthor Commented:


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

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

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

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