ColdFusion passing variables multiple times.

I am trying to pass CF Varaibles from page 1 to  execute a new query on page 2.  that is working....

Then I am trying to pass those varaibles in page 2 to a page that allows the user to save the output into excel on there desktop (page 3)

For some reason the varaibles are NOT passing to my excel page... The table headers are showing, but the query results are not... Please help....  

Code enclosed

<!------------Button from page 1 to link to page 2----->
<onClick="openActivity(Page2.cfm?in_var_one=#urlencodedformat(in_var_one)#&in_var_two=#in_var_two');return false")  value="Button1"></td>
 
<!-----on Page 2... its grabbing the varaibles from here ---->
<cfif isdefined ("url.in_var_one")>
<CFSET in_var_one = "#url.in_var_one#">
 </cfif>
 <cfif isdefined ("url.in_var_one")>
 <CFSET in_var_one = "#url.in_var_one#">
 </cfif>
<!---- this works the varaibles pass and show the output in a new window-----> 
<!---- now here is my code for saving to excel on page 2 to page 3 ----->
 
<!--- set the default to false (ie not a download )--->
<cfparam name="url.download" default="0">
 
<!--- if this is a download ...--->
<cfif url.download eq 1>
<cfheader name="Content-Disposition" value="attachment; filename=Budget.xls">
	<cfcontent type="application/vnd.ms-excel" reset="true">
</cfif>
 
 
<!---- BUTTON to link to Page 3-------> 
<!--- if this is not a download, display the button ...--->
<cfif url.download neq 1>
	<cfoutput>
	<form method="get" action="Page3.cfm?in_var_one=#urlencodedformat(in_var_one)#&in_var_two=#in_var_two#;return false;rr=#RandRange(1, 5000)#">
		<input type="hidden" name="download" value="1">
		<input type="submit" value="Export to Excel">
	</form>
	</cfoutput>
</cfif>
 
<!-----on Page 3... its grabbing the varaibles from here same as page 2 ---->
<cfif isdefined ("url.in_var_one")>
<CFSET in_var_one = "#url.in_var_one#">
 </cfif>
 <cfif isdefined ("url.in_var_one")>
 <CFSET in_var_one = "#url.in_var_one#">
 </cfif>
 
 
<!---- at the bottom of the page is my excel header to save all content in excel-----> 
<cfheader name="Content-Disposition" value="attachment; filename=Budget.xls">
<cfcontent type="application/vnd.ms-excel" reset="true">
 
<------now the page links and the excel sheet saves but the varaibles are NOT passing so the excel sheet has no data... what am I doing wrong ???? ------->

Open in new window

LVL 22
plusone3055Asked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

js_vaughanCommented:
Try commenting out your header to see if the data shows then.  You have <cfcontent reset="true"> in there more than once; i suspect that is your problem.
0
plusone3055Author Commented:
should I comment

<cfheader name="Content-Disposition" value="attachment; filename=Budget.xls">

 out in page 2 or 3 ????



0
js_vaughanCommented:
sorry, my mistake.. those were on 2 different pages.

Here is the problem : action="Page3.cfm?in_var_one=#urlencodedformat(in_var_one)#&in_var_two=#in_var_two#;return false;rr=#RandRange(1, 5000)#"

you cant pass your URL variables like this to coldfusion.  Set your variables in hidden fields.
0
Learn Ruby Fundamentals

This course will introduce you to Ruby, as well as teach you about classes, methods, variables, data structures, loops, enumerable methods, and finishing touches.

plusone3055Author Commented:
can you demonstrate for me please

I have the variables on page 3 hidden like so.....


<cfoutput>
                  <input type="hidden" name="in_var_one"  value="#in_var_one#">
                  <input type="hidden" name="in_var_two" value="#in_var_two#">



      </cfoutput>

there done the same way in page 2 coming from page 1

can you please show me how to link them through coldfusion...

thank you so much
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
js_vaughanCommented:
See the code comment below.  I assume you are using "rr" to prevent client caching of the URL?  If so, use a time-based variable instead like demonstrated below.
You currently have this :
<form method="get" action="Page3.cfm?in_var_one=#urlencodedformat(in_var_one)#&in_var_two=#in_var_two#;return false;rr=#RandRange(1, 5000)#">
	<input type="hidden" name="download" value="1">
	<input type="submit" value="Export to Excel">
</form>
 
You need something like this :
 
<form method="get" action="Page3.cfm">
	<input type="hidden" name="download" value="1">
	<input type="hidden" name="in_var_one" value="#urlencodedformat(in_var_one)#">
	<input type="hidden" name="in_var_two" value="#urlencodedformat(in_var_two)#;">
	<input type="hidden" name="time" value="#urlencodedformat(now())#">
	<input type="submit" value="Export to Excel">
</form>

Open in new window

0
plusone3055Author Commented:
thank you for your demo unfortunatly it yielded the same results the table was there but the output was not
this is very strange it works fine when going from one page to another but add the excel into it doesnt pass the variavles..

any other suggestions ????
0
plusone3055Author Commented:
im going to give up on this and just use java
0
PluckaCommented:
Why not just put them in session variables.
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
ColdFusion Language

From novice to tech pro — start learning today.