Я хотел бы создать окно поиска на главной странице моего сайта, которое могло бы выполнять поиск по всему сайту. Я знаю, что это очень общий вопрос, но я был бы очень счастлив с общим концептуальным ответом, есть ли способ сделать это?

2
user374343 25 Июн 2010 в 00:17

4 ответа

Лучший ответ

Вы не можете сделать это с помощью Javascript. Вам придется использовать какой-то серверный язык, который имеет доступ к вашей базе данных. Кроме того, вы можете использовать что-то вроде системы пользовательского поиска Google для обеспечения возможностей поиска.

11
Daniel Egeberg 24 Июн 2010 в 20:19

Это будет включать в себя гораздо больше, чем просто Javascript и зависит от ряда различных переменных. Часто сайты строятся на базе данных MySQL (или аналогичной). Если это так в вашем случае, вы можете использовать PHP для поиска и поиска по каждой записи. Вот пример использования PHP и MySQL.

Для формы, что-то вроде этого будет работать:

HTML

<form action="?" method="get">
    <input type="text" id="search" name="search" />
    <input type="submit" name="submit" id="submit" value="Search" />
</form>

Затем вам нужно будет использовать немного PHP, предполагая, что вы хотите искать заголовок и тело одной таблицы сообщений в блоге:

$search_terms = mysql_real_escape_string($_GET['search']);

$resc = mysql_query("SELECT * FROM blog_posts WHERE title LIKE '%".$search_terms."%' OR body LIKE '%".$search_terms."%'");

$posts = mysql_fetch_assoc($resc);

Now $posts - это массив, содержащий все ваши сообщения, которые соответствуют условиям поиска в их заголовке или теле.

ПРИМЕЧАНИЕ. Для поиска полей типа MySQL text вам нужно сделать поле индексом FULLTEXT.

Проверьте эту ссылку для получения дополнительной информации: http://devzone.zend.com/article/1304

Это ОЧЕНЬ ПРОСТОЕ решение, но оно поможет вам выбрать правильный путь.

0
jordanstephens 24 Июн 2010 в 20:28

Люди скажут тебе нет. Они в основном правы, что его, вероятно, не лучший способ сделать это.

Но в зависимости от вашего сайта, технически неверно говорить, что это невозможно сделать с помощью JavaScript. Если все документы, которые вы хотите использовать для поиска, имеют уникальный URL-адрес, который используется по всему сайту, и если их график связан, я думаю, вы могли бы написать паука в JavaScript, который начнет индексировать все эти страницы, как только пользователь попадет на ваш сайт. Он будет делать то же, что и любой другой паук: искать ссылки на текущей странице, запрашивать документы за ними (с использованием XMLHTTPRequest или какого-либо фрейма или всплывающего окна), обрабатывать документ и индексировать ключевые слова на основе некоторой схемы и сохранять результаты (возможно, в cookie).

Конечно, дублирование всей этой работы для каждого посетителя не имеет большого смысла, поэтому другие люди, которые говорят вам «нет», в основном правы. Но это теоретически возможно.

1
Weston C 24 Июн 2010 в 20:26

Если вы хотите, чтобы пользователи могли выполнять поиск на вашем сайте, это означает, что ваш сайт больше, чем несколько простых HTML-страниц. Задумывались ли вы об использовании чего-то вроде Drupal, Joomla !, Wikimedia или какой-то другой CMS? Большинство из них имеют встроенные возможности поиска (так или иначе).

1
Curtis 24 Июн 2010 в 20:23