ASP търсене и резултати на една страница

Имам една класическа ASP страница, която искам да показва формуляр за търсене и свързаните резултати.

Когато потребител за първи път посети тази страница, искам да покажа формуляр за търсене и 10-те най-нови свойства. Ако потребител реши да използва формуляра за търсене, за да извлече по-подходящи свойства, тогава искам 10-те най-нови свойства по подразбиране да бъдат заменени с резултатите от търсенето на потребителя в страници.

Чудех се дали това е възможно/практично в рамките на една страница и ако е така, някой има ли някакви съвети как най-добре да постигна това?

Това е моят предварителен код за такава страница; http://gist.github.com/188770

Още веднъж, в момента трябва да коригирам съществуващ ASP сайт, докато мога да го преработя в нещо по-модерно като PHP.

Благодаря ви за всяка предложена помощ.

Нийл.


person user173952    schedule 17.09.2009    source източник


Отговори (2)


Със сигурност е много възможно и практично. Обикновено решението е да изпратите обратно до себе си и да имате код в страницата, който открива дали сте пристигнали там от публикация или получаване. Искате да покажете 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
person Keith Adler    schedule 17.09.2009
comment
Здравейте, благодаря ви за бързия отговор. Актуализирах своя „основен“ код с начина, по който разбирам вашето решение; gist.github.com/188770 Правилно ли изглежда това? :) - person user173952; 18.09.2009
comment
Нуждаете се също от клауза ORDER BY на ТОП 10 заявка. - person AnthonyWJones; 18.09.2009

Вероятно искате да покажете какво е търсил потребителят във формуляра, когато покажете резултата:

<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... ако искате нещо модерно, може да искате да погледнете python, ruby ​​или asp.net mvc преди PHP, тъй като е по-лесно да пишете лош код в PHP, отколкото в който и да е от тях. ds)

person svinto    schedule 18.09.2009
comment
Добре P.S. :) Няма нищо лошо в добрия стар ASP, ако е написан добре. - person Pete Duncanson; 18.09.2009