2009-09-17 4 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

Привет, спасибо, быстрый ответ. Я обновил свой код «gist» с тем, как я понимаю ваше решение; http://gist.github.com/188770 Означает ли это, верно? :) – user173952

+0

Нет, у вас проблемы с SQL-инъекциями. Используйте параметризованные запросы ... – RedFilter

+0

Вам также нужно предложение ORDER BY в ТОП-10 запросе. – AnthonyWJones

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 там также ...

(п.с. ASP фактически один год моложе PHP. .. если вы хотите что-то современное, вы можете захотеть посмотреть на python, ruby ​​или asp.net mvc перед PHP, так как писать PHP-код на PHP проще, чем в любом из них. ds)

+0

Хорошо P.S. :) Нет ничего плохого в хорошем старом ASP, если его хорошо написано. –

Смежные вопросы