2009-09-17 54 views
0

我有一個經典的ASP頁面,我希望顯示一個搜索表單和相關的結果。ASP搜索和結果在一個頁面

當用戶第一次訪問此頁面時,我想顯示一個搜索表單和10個最新屬性。如果用戶決定使用搜索表單來檢索更多相關屬性,那麼我希望將默認的10個最新屬性替換爲用戶的分頁搜索結果。

我想知道這是可行/實用的在一頁的範圍內,如果是的話,有沒有人有任何提示,我怎麼能最好地實現這一點?

這是我對這樣一個頁面的初步代碼; http://gist.github.com/188770

再次,我目前不得不修補現有的ASP網站,直到我可以重新開發它像PHP一樣更現代化。

謝謝你提供的任何幫助。

Neil。

回答

1

這當然是非常可能和實用的。通常情況下,解決方案是回發給自己,並在頁面中有代碼檢測您是從郵局還是從郵局到達。獲取意思顯示10個最新的屬性,發佈意味着你做一個搜索並顯示結果。

if (Request.ServerVariables("REQUEST_METHOD") = "POST") then 

    ' arrived via post, get form values and do search 
else 

    ' arrived via get, show last 10 results 

end if 
+0

嗨,謝謝快速的迴應。我已經更新了我的「精華」代碼,並瞭解了我的理解。 http://gist.github.com/188770 這看起來是正確的嗎? :) – user173952 2009-09-17 23:20:35

+0

不,你有SQL注入問題。使用參數化查詢... – RedFilter 2009-09-18 02:55:44

+0

您還需要在TOP 10查詢中使用ORDER BY子句。 – AnthonyWJones 2009-09-18 08:51:11

0

你可能想顯示用戶搜索的內容形式,當您顯示結果:

<label>Street: <input type="text" name="searchStreet" value="<%=Server.HtmlEncode(Request("searchStreet") & "") %>" /></label> 

添加一個空字符串進行澆鑄,字符串給不給一個錯誤,當關鍵沒有找到,例如。第一次訪問。

如果你願意,你可以使循環漂亮:

do until myRecordSet.EOF 
%> 
<div class='result'>") 
    <dl><%=myRecordSet("ContentTitle")%><dl> 
    <dt><%=myRecordSet("ContentStreet")%><dt> 
    <dt><%=myRecordSet("ContentTown")%><dt> 
    <dt><%=myRecordSet("ContentPostcode")%><dt> 
</div><% 
myRecordSet.MoveNext 
loop 

你可能想Server.HtmlEncode有作爲......

(PS ASP實際上爲一年比PHP更年輕。 ..如果你想要一些現代的東西,你可能想在PHP之前看看python,ruby或asp.net mvc,因爲在PHP中編寫錯誤的代碼比在任何這些代碼中更容易編寫代碼。)

+0

Good P.S. :)如果它寫得很好,Theres沒什麼問題。 – 2009-09-18 12:40:40