Skip to main content
Known Participant
January 9, 2011
Answered

Create a Link using Dynamic Text and Capture Variable

  • January 9, 2011
  • 1 reply
  • 590 views

I am building a dynamic website using Dreamweaver CS5 with Coldfusion 9

Currently I have created a dynamic text table. The table is created by querying the Invoice table and displays the all the customers Invoices. The columns Include Invoice #, Date, Amount Paid, BalanceRemaining, Due Date. So basically lists all the invoices I have applied to the unique customer. It is pulled up using a session variable I created from the login page.

My question is this I want to make the "Invoice #" linked so when you click on it it goes to a new page and performs a new query which retrieves infro related to that specific invoice such as Services Rendered, Service Description, Date, Price, Total. I was able to create a link to the Invoice # but I am stuck trying to figure out how to capture the Unique Invoice # and apply it to the new query. Is this possible if so how?

Thanks for your help!

<cflock scope="Session" type="ReadOnly" timeout="30" throwontimeout="no">

  <cfset MM_Username=Iif(IsDefined("Session.MM_Username"),"Session.MM_Username",DE(""))>

  <cfset MM_UserAuthorization=Iif(IsDefined("Session.MM_UserAuthorization"),"Session.MM_UserAuthorization",DE(""))>

</cflock>

<cfif MM_Username EQ "" OR MM_UserAuthorization EQ "" OR ListFind("User,Admin",MM_UserAuthorization) EQ 0>

  <cfset MM_referer=CGI.SCRIPT_NAME>

  <cfif CGI.QUERY_STRING NEQ "">

    <cfset MM_referer=MM_referer & "?" & CGI.QUERY_STRING>

  </cfif>

  <cfset MM_failureURL="sorry.cfm?accessdenied=" & URLEncodedFormat(MM_referer)>

  <cflocation url="#MM_failureURL#" addtoken="no">

</cfif>

<cfparam name="PageNum_Invoice" default="1">

<cfset CurrentPage=GetFileFromPath(GetBaseTemplatePath())>

<cfparam name="PageNum_Query_Invoice" default="1">

<cfquery name="Query_Invoice" datasource="QBs">

SELECT RefNumber, TxnDate, AppliedAmount, BalanceRemaining, DueDate

FROM Invoice

WHERE CustomerRefFullName = <cfoutput>'#Session.FullName#'</cfoutput>

</cfquery>

<cfset MaxRows_Query_Invoice=10>

<cfset StartRow_Query_Invoice=Min((PageNum_Query_Invoice-1)*MaxRows_Query_Invoice+1,Max(Query_Invoice.RecordCount,1))>

<cfset EndRow_Query_Invoice=Min(StartRow_Query_Invoice+MaxRows_Query_Invoice-1,Query_Invoice.RecordCount)>

<cfset TotalPages_Query_Invoice=Ceiling(Query_Invoice.RecordCount/MaxRows_Query_Invoice)>

<cflock scope="Session" timeout="30" type="Exclusive">

<!--Session Variable for Invoice Reference Number -->

  <cfset Session.RefNumber=Query_Invoice.RefNumber[1]>

</cflock>

<cfset QueryString_Query_Invoice=Iif(CGI.QUERY_STRING NEQ "",DE("&"&XMLFormat(CGI.QUERY_STRING)),DE(""))>

<cfset tempPos=ListContainsNoCase(QueryString_Query_Invoice,"PageNum_Query_Invoice=","&")>

<cfif tempPos NEQ 0>

  <cfset QueryString_Query_Invoice=ListDeleteAt(QueryString_Query_Invoice,tempPos,"&")>

</cfif>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html><!-- InstanceBegin template="/Templates/customer_template.dwt.cfm" codeOutsideHTMLIsLocked="false" -->

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<!-- InstanceBeginEditable name="title" --><title>Untitled Document</title><!-- InstanceEndEditable -->

<link href="styles/Main.css" rel="stylesheet" type="text/css">

<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>

<link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css">

<!-- InstanceBeginEditable name="head" --> Head content goes here <!-- InstanceEndEditable --></head>

<body>

<div id="Container">

  <div id="header"><img src="Images/Website-Image.gif" width="393" height="217" alt="TS Landscaping Logo and Name of company"></div>

  <div id="menu_bar1">

    <ul id="MenuBar1" class="MenuBarHorizontal">

      <li><a class="MenuBarItemSubmenu" href="index.cfm">Home</a>

        <ul>

          <li><a href="#">Item 1.1</a></li>

          <li><a href="#">Item 1.2</a></li>

          <li><a href="#">Item 1.3</a></li>

        </ul>

      </li>

      <li><a href="#">About Us</a></li>

      <li><a href="#">Services</a></li>

      <li><a class="MenuBarItemSubmenu" href="#">User Account</a>

        <ul>

          <li><a href="login.cfm">Login</a></li>

          <li><a href="registration_page_contact.cfm">Register</a></li>

          <li><a href="members_page.cfm">Customer Page</a></li>

        </ul>

      </li>

      <li><a href="#">Contact Us</a></li>

    </ul>

  </div>

  <div id="Main">

    <div id="side_bar"><!-- InstanceBeginEditable name="sidebar" -->Content for  id "side_bar" Goes Here<!-- InstanceEndEditable --></div>

    <div id="main_body"><!-- InstanceBeginEditable name="mainbody" -->

<h1><cfoutput>#Session.FullName#</cfoutput> Invoices</h1>

<p> Here you can review your past and current invoices.</p><br>

<form name="customerinvoices">

<table border="1" align="center">

  <tr>

    <td><div align="center">Invoice #</div></td>

    <td><div align="center">Date</div></td>

    <td><div align="center">Amount Paid</div></td>

    <td><div align="center">BalanceRemaining</div></td>

    <td><div align="center">Due Date</div></td>

  </tr>

  <cfoutput query="Query_Invoice" startrow="#StartRow_Query_Invoice#" maxrows="#MaxRows_Query_Invoice#">

    <tr>

      <td><a href="invoice_number_page.cfm">#Query_Invoice.RefNumber#</a></td>

      <td>#LSDateFormat(Query_Invoice.TxnDate,'MMMM DD, YYYY')#</td>

      <td>#DollarFormat (Query_Invoice.AppliedAmount)#</td>

      <td>#DollarFormat(Query_Invoice.BalanceRemaining)#</td>

      <td>#LSDateFormat (Query_Invoice.DueDate, 'MMMM DD, YYY')#</td>

    </tr>

  </cfoutput>

</table></form>

<p><table border="0" align="center">

  <cfoutput>

    <tr>

      <td><cfif PageNum_Query_Invoice GT 1>

      <a href="#CurrentPage#?PageNum_Query_Invoice=1#QueryString_Query_Invoice#">First</a>

      <cfelse>Sorry no invoices were found!

      </cfif></td>

      <td><cfif PageNum_Query_Invoice GT 1>

        <a href="#CurrentPage#?PageNum_Query_Invoice=#Max(DecrementValue(PageNum_Query_Invoice),1)##QueryString_Query_Invoice#">Previous</a>

      </cfif></td>

      <td><cfif PageNum_Query_Invoice LT TotalPages_Query_Invoice>

        <a href="#CurrentPage#?PageNum_Query_Invoice=#Min(IncrementValue(PageNum_Query_Invoice),TotalPages_Query_Invoice)##QueryString_Query_Invoice#">Next</a>

      </cfif></td>

      <td><cfif PageNum_Query_Invoice LT TotalPages_Query_Invoice>

        <a href="#CurrentPage#?PageNum_Query_Invoice=#TotalPages_Query_Invoice##QueryString_Query_Invoice#">Last</a>

      </cfif></td>

    </tr>

  </cfoutput>

</table></p>

    <!-- InstanceEndEditable --></div>

  </div>

  <div id="footer">

    <p>Home | About Us | Site Map </p>

    <p>&copy; TS Landscaping LLC 2010</p>

  </div>

</div>

<script type="text/javascript">

var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"../SpryAssets/SpryMenuBarDownHover.gif", imgRight:"../SpryAssets/SpryMenuBarRightHover.gif"});

    </script>

</body>

<!-- InstanceEnd --></html>

    This topic has been closed for replies.
    Correct answer Dan_Bracuk

    Without trying to sift through all the code that has nothing to do with the question, I think you want to do something like this:

    <cfquery name="yourquery">

    select number, word

    from etc

    </cfquery>

    <cfoutput query="yourquery">

    <a href="nextpage.cfm?thenumber=#number#">#word#</a>

    </cfoutput>

    Then on nextpage.cfm, your variable will be url.thenumber.

    1 reply

    Dan_BracukCorrect answer
    Inspiring
    January 9, 2011

    Without trying to sift through all the code that has nothing to do with the question, I think you want to do something like this:

    <cfquery name="yourquery">

    select number, word

    from etc

    </cfquery>

    <cfoutput query="yourquery">

    <a href="nextpage.cfm?thenumber=#number#">#word#</a>

    </cfoutput>

    Then on nextpage.cfm, your variable will be url.thenumber.

    Known Participant
    January 9, 2011

    Thanks so much Dan! Worked exactly how I wanted it to. Sorry for posting unnecessary code.