是否可以使用javascript为我的网站创建搜索框?

时间:2010-06-24 20:17:09

标签: javascript html

我想在我的网站主页上创建一个搜索框,可以搜索整个网站。我知道这是一个非常普遍的问题,但我会非常高兴只有一个概括性的答案,无论如何要做到这一点?

4 个答案:

答案 0 :(得分:11)

你无法使用Javascript真正做到这一点。您将不得不使用某种可以访问您的数据库的服务器端语言。或者,您可以使用Google Custom Search Engine之类的内容来提供搜索功能。

答案 1 :(得分:1)

一旦您开始希望用户能够搜索您的网站,就意味着您的网站不仅仅是一些简单的HTML网页。您是否考虑过使用Drupal,Joomla!,Wikimedia或其他CMS?其中大多数具有内置的搜索功能(以这种或那种方式)。

答案 2 :(得分:1)

人们会告诉你不。他们主要是,他可能不是最好的方法。

但是根据您的网站,从技术角度来说,用JavaScript无法做到这一点可能是不正确的。如果您想要搜索的所有文档都有一个在整个站点中使用的唯一URL,并且如果它们的图形已连接,我认为您可以用JavaScript编写一个蜘蛛,一旦用户访问您的站点就开始索引所有这些页面。它做任何其他蜘蛛做的事情:在当前页面上查找链接,请求它们后面的文档(使用XMLHTTPRequest或某种框架或弹出窗口),根据某些方案处理文档和索引关键字,并存储结果(可能是一个cookie)。

当然,为每个访问者复制所有这些工作并没有多大意义,这就是为什么其他人告诉你的不是大多数是正确的。但这在理论上是可行的。

答案 3 :(得分:0)

这将涉及的不仅仅是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);

现在$posts是一个数组,其中包含与其标题或正文中的搜索字词匹配的所有帖子。

注意:要搜索text类型的MySQL字段,您需要将该字段设为FULLTEXT索引。

查看此链接以获取更多信息:http://devzone.zend.com/article/1304

这是一个非常简单的解决方案,但它可以帮助您走上正确的道路。