• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 676
  • Last Modified:

ColdFusion redirect after processing

Currently I have the below page that processes the selections a user picks to add to their agenda.  Right now the page tells the user what companies were added and if any were duplicates.  Somehow I need the page to still do that processing, but rather than show them the results after the page processes I need to take them back to the previous page they were viewing so they can continue to add more companies.


<!--- This is the Action page --->
 
 
<cfif IsDefined('FORM.Login')>
	    <cfinvoke component="Components.AgendaPlanner"
				  method="getLogin"
				  argumentcollection="#FORM#">
		</cfinvoke>
</cfif>
 
<cfif IsDefined('URL.ExhibitorID')>
	<cfset Exhibitors = URL.ExhibitorID>
</cfif>
<cfif IsDefined('FORM.Customer_ID')>
	<cfset Exhibitors = FORM.Customer_ID>
</cfif>
 
<!--- <cfdump var="#variables#"> --->
<style type="text/css">
<!--
.style2 {color: #990000}
-->
</style>
 
 
<table cellpadding="0" cellspacing="0" width="700" border="0">
 
<tr align="left">
<td width="700" valign="top">  <table width="100%" border="0" cellspacing="0" cellpadding="10">
    <tr>
      <td align="left" valign="top">
  <h1>Agenda Planner</h1>
  <br />
  <br />
  <!---<cfset COOKIE.AgendaUser = 1>--->
<cfif IsDefined('Exhibitors')>
  <!---<cfoutput>#URL.ExhibitorID#</cfoutput>--->
    <cfif Not IsDefined('COOKIE.AgendaUser')>
      <cfset SESSION.WaitingAgendaListing = Exhibitors>
      <cflocation addtoken="no" url="agenda-login.cfm">
      <cfelse>
	    <cfinvoke component="Components.AgendaPlanner"
				  method="getUser"
				  returnvariable="User">
		    	  <cfinvokeargument name="UserID" value="#COOKIE.AgendaUser#">
		</cfinvoke>
      <cfif User.RecordCount NEQ 0>
 
<!---		<cfinvoke component="Components.AgendaPlanner"
	   			  method="getSavedAgenda"
	   			  returnvariable="AgendaCheck">
				  <cfinvokeargument name="Sort" value="1">
				  <cfinvokeargument name="Exhibitors" value="#Exhibitors#">	
		 		  <cfinvokeargument name="UserID" value="#COOKIE.AgendaUser#">	 
		 </cfinvoke>
     <cfif AgendaCheck.RecordCount EQ 0>--->
     
     
		<cfinvoke component="Components.AgendaPlanner"
			 	  method="insertAgendaItem"
				  returnvariable="Exhib">
			  	  <cfinvokeargument name="Exhibitors" value="#Exhibitors#">		
				  <cfinvokeargument name="UserID" value="#User.UserID#">	
		</cfinvoke>
 
 
 
       <!--- <cfdump var="#Exhib#">--->
        <cfoutput>
        <cfif len(Exhib.Inserted) NEQ 0>
        <p> <b>The following companies have been added:</b></p>
        <dl>
        <cfloop list="#Exhib.Inserted#" index="i">
        		<cfinvoke component="Components.Exhibitors"
				  method="getExhibitor"
				  returnvariable="gotExhibitors">
				  <cfinvokeargument name="ExhibitorID" value="#i#">
		</cfinvoke>
        <dd>#gotExhibitors.CO_Name#</dd>
        </cfloop>
        </dl>
        </cfif>
        <cfif len(Exhib.Duped) NEQ 0>
        <p class="style2"> The following companies are already in your agenda:  </p>
        <dl>
        <cfloop list="#Exhib.Duped#" index="i">
        		<cfinvoke component="Components.Exhibitors"
				  method="getExhibitor"
				  returnvariable="gotExhibitors">
				  <cfinvokeargument name="ExhibitorID" value="#i#">
		</cfinvoke>
        <dd>#gotExhibitors.CO_Name#</dd>
        </cfloop>
        </dl>
        </cfif>
        </cfoutput>
        <br />
        <br />
        <p class="bodytext"><a href="my-agenda.cfm">View your current agenda.</a></p>
 
        <cfelse>
        User Not Found.<cfdump var="#COOKIE#">
        </cfif>
      </cfif>
<cfelse>
    
  
  <cfif IsDefined("COOKIE.APEmail")>
    <cfset email = COOKIE.APEmail>
  <cfelse>
    <cfset email = "">
  </cfif>
  <cfif IsDefined("COOKIE.APPassword")>
    <cfset password = COOKIE.APPassword>
  <cfelse>
    <cfset password = "">
  </cfif>
  <cfform action="agenda-planner.cfm" method="post">
  <table cellspacing="0" cellpadding="2" border="0" width="400" align="center">
  <tr>
  <td class="bodytext" align="right"><b>Email Address:</b>&nbsp;</td>
  <td class="bodytext"><cfinput type="text" 
							  name="Email" 
							  size="40" 
							  maxlength="200" 
							  value="#email#"
							  required="Yes"
							  message="Email Address is a required field."></td>
  </tr>
  <tr>
  <td class="bodytext" align="right"><b>Password:</b>&nbsp;</td>
  <td class="bodytext"><cfinput type="password" 
							  name="Password" 
							  size="20" 
							  maxlength="50" 
							  value="#password#"
							  required="Yes"
							  message="Password is a required field."></td>
  </tr>
  <tr>
  <td class="bodytext">&nbsp;</td>
  <td class="bodytext"><input type="Checkbox" name="SetCOOKIEs" value="1">&nbsp;Remember my E-mail address and Password</td>
  </tr>
  <tr>
  <td class="bodytext">&nbsp;</td>
  <td class="bodytext"><input type="hidden" name="Login" value="1"><input type="submit" value="Submit" alt="Login"></td>
  </tr>
  </table>				
  </cfform>
</cfif>
        
        
        
   
        
        <p class="bodytext"></p></td>
    </tr>
  </table></td>
</tr>
</table>
<cf_2008FELFooter>

Open in new window

0
Albee_J
Asked:
Albee_J
  • 4
  • 2
1 Solution
 
SidFishesCommented:
at the end of your processing code

<cflocation url="previouspage.cfm" addtoken="no">
0
 
msfletchCommented:
What Sid said is the easiest if you don't need to display the results in your previous page or if you save the results in some type of session variables. If you want to send results to the previous page, you can try submitting a hidden form back onLoad:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Processing Results</title>
</head>
<body onLoad="document.form.submit();">
<form name=form method=post action="previousPage.cfm">
    <input type=hidden name="value1" value="someValue">
    <input type=hidden name="value2" value="someValue">
    <input type=hidden name="value3" value="someValue">
</form>
</body>
</html>

... or adding name/value pairs to the URL Sid suggested:

<cflocation url="previouspage.cfm?value1=somevalue&value2=somevalue&value3=somevalue" addtoken="no">
0
 
Albee_JAuthor Commented:
I added  <cflocation url="#CGI.HTTP_REFERER#" addtoken="no">  but there is too much going on (checking to see if there is dupes etc)to add that to the current page, its not working correctly.  Either that or I am just not adding it in the right place.
0
Easily Design & Build Your Next Website

Squarespace’s all-in-one platform gives you everything you need to express yourself creatively online, whether it is with a domain, website, or online store. Get started with your free trial today, and when ready, take 10% off your first purchase with offer code 'EXPERTS'.

 
msfletchCommented:
You could also try:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <title>Processing Results</title>
</head>
<cfoutput>
<body onLoad="window.location='#CGI.HTTP_REFERER#'">
</cfoutput>
</body>
</html>
<cfabort>
0
 
msfletchCommented:
Or this:

<cfset getpagecontext().getResponse().sendRedirect('#CGI.HTTP_REFERER#')>

It's an alternative to cflocation it uses the underlying JVM
0
 
msfletchCommented:
0
 
Albee_JAuthor Commented:
msfletch:

When I try GetPageContext()  I get a Virtual Directory error.  
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

The 14th Annual Expert Award Winners

The results are in! Meet the top members of our 2017 Expert Awards. Congratulations to all who qualified!

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