• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
0

Having a problem setting my site to show next search results.

Guest
Aug 05, 2010 Aug 05, 2010

Copy link to clipboard

Copied

Hey everyone. I am having a problem with setting up a next and previous link to show the results from a search engine i made. Also when the next link does show up and i hit it with the results on the page, it resets the whole page. Any idea what i am doing wrong?

===============================================================================================================

<cfparam name="FORM.Islands" default="" />
<cfparam name="URL.StartRow" default="1">

<cfset sNextRow = URL.StartRow + 2 />
<cfset sPreviousRow = URL.StartRow - 2 />

<cfquery name="qResults" datasource="wyi2">
SELECT BusinessID, BusinessName, Address, IslandID, Phone, WebID
FROM Business
WHERE IslandID = <cfqueryparam value="#FORM.Islands#">
ORDER BY BusinessName ASC
</cfquery>

<cfquery name="qIslands" datasource="wyi2">
SELECT IslandID, IslandName
FROM Islands
ORDER BY IslandName ASC
</cfquery>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>.: Where Ya Is :.</title>
<link href="../css/wyi.css" rel="stylesheet" type="text/css" />
</head>

<body>
<!--- Start Div container --->
  <div id="Container">
  <!--- Start div banner --->
    <div id="sBanner">
    <img src="../images/logo_Store_Sales.jpg" width="400" height="175" border="0" usemap="#Map" />
    <map name="Map" id="Map">
      <area shape="rect" coords="220,153,268,169" href="../index.cfm" target="_self" alt="Home" />
      <area shape="rect" coords="287,152,373,168" href="../contact/index.cfm" target="_self" alt="Contact Us" />
    </map>
    </div>
  <!--- End div banner --->
  <!--- Start Search form --->
    <div id="sForm">
      <cfform action="#CGI.SCRIPT_NAME#" method="post" preservedata="yes">
        <table width="400" border="0" cellspacing="2" cellpadding="0">
            <tr>
              <td>
              <cfselect name="Islands"
                        query="qIslands"
                        display="IslandName"
                        value="IslandID"
                        queryPosition="below">
                <option value="all">Please select an island</option>
              </cfselect>
            </td>
              <td>
                <cfinput type="submit" name="Find_btn" class="button" value="Find store" />
               </td>
          </tr>
        </table>
      </cfform>
    </div>
  <!--- End Search form --->
  <!--- Start Results section --->
    <div id="sResults">

      <table border="0" cellpadding="0" cellspacing="2">
        <tr>
          <td colspan="3">
            <cfif IsNumeric(FORM.Islands)>
              <cfoutput>
                We have found #qResults.RecordCount# store<cfif (qResults.RecordCount GT 1) OR (qResults.RecordCount LT 1)>s</cfif>.
              </cfoutput>
            <cfelse>
              Please select an island to help us find the store you are looking for.
            </cfif>
          </td>
        </tr>
        <tr>
          <td> </td>
          <td> </td>
          <td> </td>
        </tr>
        <cfif qResults.RecordCount GT 2>
        <cfoutput>
        <tr>
          <td width="150">
            <cfif URL.StartRow GT 2>
            <a href="#CGI.SCRIPT_NAME#?StartRow=#sPreviousRow#">Previous</a>
          </cfif>
          </td>
          <td width="150">
            <a href="#CGI.SCRIPT_NAME#?StartRow=#sNextRow#">Next</a>
          </td>
          <td> 
           
          </td>
        </tr>
        </cfoutput>
      </cfif>
            <cfoutput query="qResults" startrow="#URL.Startrow#" maxrows="2">
        <tr>
          <td colspan="3">
              <p><a href="results.cfm?BusinessID=#BusinessID#">#BusinessName#</a></p>
          </td>
        </tr>
            </cfoutput>
        <tr>
          <td colspan="2"> </td>
          <td> </td>
        </tr>
        <tr>
          <td colspan="3">Copyright 2010,&copy; Where ya is, All Rights Reserved</td>
        </tr>
      </table>
    </div>
   <!--- End Results section --->
   <!--- Start Advertising --->
    <div id="Advert">
      <img src="../images/ad_sample.jpg" width="200" height="200" />
    </div>
  <!--- End Advertising --->
</div>
<!--- End Div container --->
</body>
</html>

=============================================================================================================

TOPICS
Advanced techniques

Views

948

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Enthusiast , Aug 10, 2010 Aug 10, 2010

Any information that needs to be retained will need to be sent in one of the following places.

1. A query string in a URL.

2. A form variable

3. A cookie

4. A session variable.

Bear in mind that form and URL variables only exist for a single page request. If you want to "remember" them you will need to submit them again.

You may find this useful.

http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0c35c-7ffb.html

Votes

Translate

Translate
Enthusiast ,
Aug 06, 2010 Aug 06, 2010

Copy link to clipboard

Copied

When the next link is clicked and the page requested the second time the value of form.Islands is defaulting to an empty string.  Try passing the Islands variable in the url scope as a start.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 06, 2010 Aug 06, 2010

Copy link to clipboard

Copied

thx for the reply. Sorry for being a newb, but i have been out of the CF loop for about 5 yrs and alot of what i'm doing now is from looking online and asking forums such as this one. Would you mind taking my code and showing me what i need to change? I tried the following, but no go..

i added a <cfparam name="URL.IslandID" default="" /> to the top of the code.

I also changed the "next" and Previous" string to...

<a href="#CGI.SCRIPT_NAME#?IslandID=#FORM.Islands#&StartRow=#sPreviousRow#">Previous</a>

<a href="#CGI.SCRIPT_NAME#?IslandID=#FORM.Islands#&StartRow=#sNextRow#">Next</a>

Again the form resets. Can't seem to get the form to keep it's value or the search results even after i click the "next" link.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Aug 06, 2010 Aug 06, 2010

Copy link to clipboard

Copied

You'll need to modify your qResults query to use either a url or form parameter in the where clause to re-run the query each page request using the island value you want to work with.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 06, 2010 Aug 06, 2010

Copy link to clipboard

Copied

I think i understand what you are saying, but don't know how to do that. Would you mind showing me?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Aug 09, 2010 Aug 09, 2010

Copy link to clipboard

Copied

Something along the lines of:

<cfif IsDefined("form.islands")>
    <cfset searchValue=form.islands />
<cfelseif IsDefined("url.islands">
    <cfset searchValue="url.islands />
</cfif>

<cfquery name="qResults" datasource="wyi2">
SELECT BusinessID, BusinessName, Address, IslandID, Phone, WebID
FROM Business
WHERE IslandID = <cfqueryparam value="#searchValue#">
ORDER BY BusinessName ASC
</cfquery>

You will need to include the searchValue as a query string parameter (url.islands) in your previous/next links.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 09, 2010 Aug 09, 2010

Copy link to clipboard

Copied

Thx, but when i added the code you provided the entire form resets and the results are gone. Here's the code again with the updates.

========================================

<cfparam name="FORM.Islands" default="" />
<cfparam name="URL.Islands" default="" />
<cfparam name="URL.StartRow" default="1">

<cfset sNextRow = URL.StartRow + 2 />
<cfset sPreviousRow = URL.StartRow - 2 />

<cfif IsDefined("FORM.Islands")>
  <cfset SearchValue = FORM.Islands />
<cfelseif IsDefined("URL.Islands")>
  <cfset SearchValue = URL.Islands />
</cfif>

<cfquery name="qResults" datasource="wyi2">
SELECT BusinessID, BusinessName, Address, IslandID, Phone, WebID
FROM Business
WHERE IslandID = <cfqueryparam value="#SearchValue#">
ORDER BY BusinessName ASC
</cfquery>

<cfquery name="qIslands" datasource="wyi2">
SELECT IslandID, IslandName
FROM Islands
ORDER BY IslandName ASC
</cfquery>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>.: Where Ya Is :.</title>
<link href="../css/wyi.css" rel="stylesheet" type="text/css" />
</head>

<body>
<!--- Start Div container --->
  <div id="Container">
  <!--- Start div banner --->
    <div id="sBanner">
    <img src="../images/logo_Store_Sales.jpg" width="400" height="175" border="0" usemap="#Map" />
    <map name="Map" id="Map">
      <area shape="rect" coords="220,153,268,169" href="../index.cfm" target="_self" alt="Home" />
      <area shape="rect" coords="287,152,373,168" href="../contact/index.cfm" target="_self" alt="Contact Us" />
    </map>
    </div>
  <!--- End div banner --->
  <!--- Start Search form --->
    <div id="sForm">
      <cfform action="#CGI.SCRIPT_NAME#" method="post" preservedata="yes">
        <table width="400" border="0" cellspacing="2" cellpadding="0">
            <tr>
              <td>
              <cfselect name="Islands"
                        query="qIslands"
                        display="IslandName"
                        value="IslandID"
                        queryPosition="below">
                <option value="all">Please select an island</option>
              </cfselect>
            </td>
              <td>
                <cfinput type="submit" name="Find_btn" class="button" value="Find store" />
               </td>
          </tr>
        </table>
      </cfform>
    </div>
  <!--- End Search form --->
  <!--- Start Results section --->
    <div id="sResults">

      <table border="0" cellpadding="0" cellspacing="2">
        <tr>
          <td colspan="3">
            <cfif IsNumeric(FORM.Islands)>
              <cfoutput>
                We have found #qResults.RecordCount# store<cfif (qResults.RecordCount GT 1) OR (qResults.RecordCount LT 1)>s</cfif>.
              </cfoutput>
            <cfelse>
              Please select an island to help us find the store you are looking for.
            </cfif>
          </td>
        </tr>
        <tr>
          <td> </td>
          <td> </td>
          <td> </td>
        </tr>
        <cfif qResults.RecordCount GT 2>
        <cfoutput>
        <tr>
          <td width="150">
            <cfif URL.StartRow GT 2>
            <a href="#CGI.SCRIPT_NAME#?IslandID=#FORM.Islands#&SearchValue=#URL.Islands#&StartRow=#sPreviousRow#">Previous</a>
          </cfif>
          </td>
          <td width="150">
            <a href="#CGI.SCRIPT_NAME#?IslandID=#FORM.Islands#&SearchValue=#URL.Islands#&StartRow=#sNextRow#">Next</a>
          </td>
          <td> 
           
          </td>
        </tr>
        </cfoutput>
      </cfif>
            <cfoutput query="qResults" startrow="#URL.Startrow#" maxrows="2">
        <tr>
          <td colspan="3">
              <p><a href="results.cfm?BusinessID=#BusinessID#">#BusinessName#</a></p>
          </td>
        </tr>
            </cfoutput>
        <tr>
          <td colspan="2"> </td>
          <td> </td>
        </tr>
        <tr>
          <td colspan="3">Copyright 2010,&copy; Where ya is, All Rights Reserved<br/><br/><cfoutput>#DateFormat(Now())#</cfoutput></td>
        </tr>
      </table>
    </div>
   <!--- End Results section --->
   <!--- Start Advertising --->
    <div id="Advert">
      <img src="../images/ad_sample.jpg" width="200" height="200" />
    </div>
  <!--- End Advertising --->
</div>
<!--- End Div container --->
</body>
</html>

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Aug 09, 2010 Aug 09, 2010

Copy link to clipboard

Copied

If a CFPARAM for form.islands is included the searchValue variable will be empty when the next/previous links are clicked, since url.islands value will never be used.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 09, 2010 Aug 09, 2010

Copy link to clipboard

Copied

Thank you that fixed it. I have one more question. When i hit "Next" the form doesn't hold it's value, meaning the form resets, but the search results and the next/previous links are still there. Any idea on how i can fix that?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Enthusiast ,
Aug 10, 2010 Aug 10, 2010

Copy link to clipboard

Copied

Any information that needs to be retained will need to be sent in one of the following places.

1. A query string in a URL.

2. A form variable

3. A cookie

4. A session variable.

Bear in mind that form and URL variables only exist for a single page request. If you want to "remember" them you will need to submit them again.

You may find this useful.

http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0c35c-7ffb.html

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Guest
Aug 11, 2010 Aug 11, 2010

Copy link to clipboard

Copied

LATEST

Thanks again for all your help. everything works prefectly now.


Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Resources
Documentation