建立搜尋及結果頁面

上次更新時間 2024年4月25日
備註

Dreamweaver 和更高版本的用戶介面已經簡化。 因此,您在 Dreamweaver 和更高版本中可能會找不到本文所描述的一些選項。 如需詳細資訊,請參閱本文

關於搜尋及結果頁面

您 可以使用 Dreamweaver 建置一組頁面 讓使用者搜尋您的資料庫並檢視搜尋結果。

在大多數情況下,您至少需要兩個頁面才能將此功能 新增到您的網頁應用程式。第一個頁面是包含 HTML 表單的頁面,使用者可在其中輸入搜尋參數。雖然此 頁面不會執行任何實際搜尋,但它被稱為搜尋 頁面。

您需要的第二個頁面是結果頁面,它執行 大部分的工作。結果頁面會執行下列工作:

  • 讀取由搜尋頁面所送出的搜尋參數

  • 連線到資料庫並搜尋記錄

  • 使用所找到的記錄建立資料集

  • 顯示資料集的內容

    您也可以選擇 新增詳細資訊頁面。詳細資訊頁面為使用者提供 結果頁面上特定記錄的更多資訊。

    如果您只有一個搜尋參數,Dreamweaver 可讓您將搜尋功能新增到網頁應用程式,而無需使用 SQL 查詢和變數。只需設計您的頁面並完成 幾個對話框。如果您有多個搜尋參數, 您需要撰寫 SQL 陳述式並為其定義多個變數。

    Dreamweaver 會將 SQL 查詢插入您的頁面。當頁面在伺服器上執行時,會檢查資料庫表格中的每筆記錄。如果記錄中的指定欄位符合您的 SQL 查詢條件,該記錄就會包含在記錄集中。SQL 查詢實際上建置了僅包含搜尋結果的記錄集。

    例如,現場銷售人員可能有關於某個地區收入超過特定水準的客戶資訊。在搜尋頁面的表單中,銷售人員輸入地理區域和最低收入水準,然後按一下「送出」按鈕,將這兩個值傳送到伺服器。在伺服器上,這些值會傳遞到結果頁面的 SQL 陳述式,然後建立僅包含指定區域內收入超過指定水準的客戶的記錄集。

建立搜尋頁面

網頁上的搜尋頁面通常包含 表單欄位,使用者可在其中輸入搜尋參數。您的搜尋頁面至少必須包含一個具有送出按鈕的 HTML 表單。

若要將 HTML 表單新增到搜尋頁面,請完成 下列程序。

開啟搜尋頁面或新頁面,然後選取 「插入」>「表單」>「表單」。

網頁上便會建立空白的表單。 您可能需要啟用不可見元素 (「檢視」>「視覺輔助」>「不可見元素」) 才能看到表單的邊界,這些邊界以細紅線表示。

從「插入」選單選取「表單」,新增表單物件 讓使用者輸入搜尋參數。

表單物件包括文字欄位、選單、選項和單選按鈕。您可以新增任意數量的表單物件來協助使用者細化搜尋。不過,請記住,搜尋頁面上的搜尋參數數量越多,您的 SQL 陳述式就越複雜。

在表單中新增送出按鈕 (插入 > 表單 > 按鈕)。
(選用) 選取按鈕並開啟屬性檢視窗 (視窗 > 屬性),然後在值方塊中輸入新值,以變更送出按鈕的標籤。

接下來,您將告知表單,當使用者按一下送出按鈕時,要將搜尋參數傳送到何處。

選取文件視窗底部標記選擇器中的 <form> 標記來選取表單,如下圖所示:
表單標籤

在表單屬性檢視窗的「動作」方塊中,輸入將進行資料庫搜尋的結果頁面檔案名稱。
在「方法」彈出式選單中,選取下列其中一種方法來決定表單如何將資料傳送到伺服器:
  • GET 會將表單資料附加到 URL 作為查詢字串來傳送表單資料。由於 URL 限制為 8192 個字元,因此請勿將 GET 方法與長表單搭配使用。

  • POST 會在訊息正文中傳送表單資料。

  • Default 會使用瀏覽器的預設方法 (通常為 GET)。

    搜尋頁面已完成。

建立基本的結果頁面

當使用者按一下表單的搜尋按鈕時, 搜尋參數會傳送到伺服器上的結果頁面。 伺服器上的結果頁面,而不是瀏覽器上的搜尋頁面, 負責從資料庫中擷取記錄。如果搜尋頁面向伺服器提交單一搜尋參數,您可以建置結果頁面,無需 SQL 查詢和變數。您建立一個 基本的記錄集,其中包含可排除不符合 搜尋頁面提交的搜尋參數之記錄的篩選器。

備註

如果您 有多個搜尋條件,則必須使用進階記錄集 對話框來定義您的記錄集 (請參閱 建置 進階結果頁面 )。

建立記錄集以保存 搜尋結果

在「文件」 視窗中開啟您的結果頁面。

如果您還沒有結果頁面,請建立一個空白的動態 頁面 (「檔案」>「新增」>「空白頁面」)。

透過開啟「繫結」面板 (「視窗」> 「繫結」)、按一下加號 (+) 按鈕,並從 彈出選單中選取「記錄集」來建立記錄集。
請確認所顯示的是簡單「資料集」對話方塊。
資料集對話方塊

備註

如果 出現進階對話框,請按一下「簡單」按鈕 切換到簡單對話框。

輸入資料集名稱,再選取連線。

連線應該是連接到包含您希望使用者 搜尋之資料的資料庫。

在「表格」彈出選單中,選取要在資料庫中 搜尋的表格。
備註

在單一參數搜尋中,您只能搜尋 單一表格中的記錄。若要一次搜尋多個表格,您必須使用進階記錄集對話框並定義 SQL 查詢。

若要在資料錄集中僅包含部分資料表欄位, 請按一下「選取」,然後按住 Control 並按一下 (Windows) 或按住 Command 並按一下 (Macintosh) 清單中所需的欄位來選取。

您應該僅包含含有您要在結果頁面上顯示之 資訊的欄位。

暫時保持資料錄集 對話框開啟。接下來您將使用它來擷取搜尋頁面傳送的參數 並建立資料錄集篩選器來排除不符合參數的記錄。

建立資料集篩選器

從篩選器 區域的第一個彈出式選單,選取資料庫表格中要搜尋 符合項目的欄位。

例如,如果搜尋頁面傳送的值是城市 名稱,請選取表格中包含城市名稱的欄位。

從第一個選單旁邊的彈出式選單,選取 等號 (應該為預設值)。
從第三個彈出式選單,如果搜尋頁面上的表單使用 POST 方法, 請選取「表單變數」,如果使用 GET 方法,則選取「URL 參數」。

搜尋頁面使用表單變數或 URL 參數 將資訊傳遞到結果頁面。

在第四個方塊中,輸入搜尋頁面上 接受搜尋參數的表單物件名稱。

物件的名稱同時也是表單 變數或 URL 參數的名稱。您可以切換到搜尋頁面, 按一下表單上的表單物件來選取它, 並在屬性面板中檢查物件的名稱來取得名稱。

例如, 假設您要建立僅包含特定國家/地區的冒險 旅程的資料錄集。假設表格中有一個名稱為 TRIPLOCATION 的欄。 同時假設搜尋頁面上的 HTML 表單使用 GET 方法 並包含一個名為 Location 的選單物件,該物件顯示 國家/地區清單。下列範例顯示篩選器區段應該 呈現的樣子:

表單物件參數

(可選) 按一下「測試」,輸入測試值,然後按一下 「確定」以連接到資料庫並建立資料錄集的執行個體。

測試值會模擬原本應該 從搜尋頁面返回的值。按一下「確定」關閉測試記錄集。

如果您對這個資料集感到滿意,請按一下「確定」。

伺服器端指令碼會插入到您的頁面中,當它在伺服器上執行時會檢查 資料庫表格中的每一筆記錄。如果記錄中的指定欄位符合篩選條件,該記錄就會包含在記錄集中。指令碼會建立僅包含搜尋結果的記錄集。

下一步是在結果頁面上顯示記錄集。如需詳細資訊, 請參閱顯示 搜尋結果

建立進階的結果頁面

如果搜尋頁面向伺服器提交多個搜尋參數,您必須為結果頁面撰寫 SQL 查詢,並在 SQL 變數中使用搜尋參數。

備註

如果 您只有一個搜尋條件,可以使用簡單的記錄集 對話框來定義記錄集 (請參閱建置 基本結果頁面)。

在 Dreamweaver 中開啟結果頁面, 然後開啟「繫結」面板 (「視窗」> 「繫結」),按一下加號 (+) 按鈕,並從彈出式選單中 選取「記錄集」,藉此建立記錄集。
請確認所顯示的是進階「資料集」對話方塊。

進階對話方塊有一個可以輸入 SQL 陳述式的文字區域。 如果出現簡單對話框,請按一下「進階」按鈕 切換到進階對話框。

輸入資料集名稱,再選取連線。

連線應該是連接到包含您希望使用者 搜尋之資料的資料庫。

在 SQL 文字區域中輸入 Select 陳述式。

確定陳述式包含一個 WHERE 子句,其中包含用來 保存搜尋參數的變數。在以下範例中,這些變數叫做 varLastNamevarDept

SELECT EMPLOYEEID, FIRSTNAME, LASTNAME, DEPARTMENT, EXTENSION FROM EMPLOYEE ¬

WHERE LASTNAME LIKE 'varLastName' ¬

AND DEPARTMENT LIKE 'varDept'

若要減少輸入量, 您可以使用進階記錄集對話框底部 的資料庫項目樹狀結構。如需相關指示,請參閱透過撰寫 SQL 定義 進階記錄集

如需 SQL 語法的說明,請參閱www.adobe.com/go/learn_dw_sqlprimer上的 SQL 入門。

在「變數」區域中按一下加號 (+) 按鈕,並輸入 變數名稱、預設值 (如果沒有傳回執行階段值,變數應該 採用的值) 和執行階段值 (通常 是保存瀏覽器所傳送值的伺服器物件,例如要求 變數),藉此讓 SQL 變數具有搜尋參數的值。

在以下 ASP 範例中,搜尋 頁面上的 HTML 表單使用GET方法,並包含一個名為 LastName 的文字 欄位,以及另一個名為 Department 的欄位:

ASP 範例

在 ColdFusion 中,執行階段值會是 #LastName##Department#。在 PHP 中,執行階段值為 $_REQUEST["LastName"]$_REQUEST["Department"]

(選擇性) 按一下「測試」,使用預設變數值 建立記錄集的執行個體。

預設值會模擬原本會 從搜尋頁面傳回的值。按一下「確定」關閉測試 記錄集。

如果您對這個資料集感到滿意,請按一下「確定」。

SQL 查詢便會插入至頁面中。

下一步 是在結果頁面上顯示記錄集。

顯示搜尋結果

建立記錄集來保存搜尋 結果之後,您必須在結果頁面上顯示資訊。顯示 記錄可能只是簡單地將個別欄 從「繫結」面板拖曳到結果頁面。您可以加入導覽 連結來在記錄集中向前和向後移動,或者您 可以建立重複區域來在頁面上 顯示多筆記錄。您還可以加入細節頁面的連結。

如需在頁面上顯示動態內容的其他 方法 (不是在動態表格中顯示結果) 的詳細資訊,請參閱顯示 資料庫記錄

將插入點放置在您希望動態 表格在結果頁面上出現的位置,然後選取「插入」> 「資料物件」>「動態資料」>「動態表格」。
完成「動態表格」對話框,選取您定義來 保存搜尋結果的記錄集。
按一下「確定」。 在結果頁面上插入顯示搜尋結果的動態表格。

為結果頁面建立詳細資料頁面

您的搜尋頁面與結果頁面集合可以包含詳細資料頁面,以顯示結果頁面上特定記錄的詳細資訊。在這種情況下,您的結果頁面也可兼作主版詳細資料頁面集中的主版頁面。

您可以建立開啟相關頁面並將現有參數傳遞至該頁面的連結。伺服器行為僅在使用 ASP 伺服器模型時可用。

將「前往相關頁面」伺服器行為新增至頁面之前,請確保頁面從另一個頁面接收表單或 URL 參數。伺服器行為的工作是將這些參數傳遞至第三個頁面。例如,您可以將結果頁面接收的搜尋參數傳遞至另一個頁面,讓使用者不必再次輸入搜尋參數。

此外,您可以選取頁面上的文字或影像作為相關頁面的連結,或者您可以將指標放置在頁面上而不選取任何內容,然後插入連結文字。

在「前往相關頁面」方塊中,按一下「瀏覽」並找到相關頁面檔案。

如果目前頁面將資料提交至本身,請輸入目前頁面的檔案名稱。

如果您要傳遞的參數是使用 GET 方法直接從 HTML 表單接收,或列在頁面的 URL 中,請選取「URL 參數」選項。
如果您要傳遞的參數是使用 POST 方法直接從 HTML 表單接收,請選取「表單參數」選項。
按一下「確定」。

按一下新連結時,頁面會使用查詢字串將參數傳遞至相關頁面。