jquery从mysql数据库实时搜索?

时间:2009-11-15 11:22:21

标签: javascript jquery mysql database ajax

在SO中,您无需按Enter键即可搜索标签。

我想知道:

  • 是从数据库或XML文件中检索的标签吗?
  • 是否涉及ajax?

我是前端的新人。如果涉及ajax。我应该怎么写代码?

我想让它访问一个返回数据的php文件。但我不熟悉它的实际运作方式。

代码应该是这样的:

<html>
<body>

<script type="text/javascript">
function ajaxFunction()
{
var xmlhttp;
if (window.XMLHttpRequest)
{
// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
}
else
{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState==4)
{
document.myForm.time.value=xmlhttp.responseText;
}
}
xmlhttp.open("GET","time.php",true);
xmlhttp.send(null);
}
</script>

<form name="myForm">
Name: <input type="text" name="username" onkeyup="ajaxFunction();" />
Time: <input type="text" name="time" />
</form>

</body>
</html>

我如何发送用户在将密钥发布到php后键入的文本?以及如何在php使用SELECT获取标记后返回值。回声?

PLZ指导我一点。当涉及到前端时我很困惑。

3 个答案:

答案 0 :(得分:2)

您实际上可以使用Firebug找到自己。您会注意到在标签文本框中键入一个字母会触发对服务器的请求。

例如,条目“C”将从服务器给出以下响应:

c#|48259
javascript|18318
c++|16999
asp.net-mvc|7224
c|6948
css|6563

然后在SO中解释结果,然后用jQuery显示。

在撰写答案时使用Firebug,您还会注意到客户端每隔一分钟发送一次请求:

POST answer-activity-heartbeat

这也是您注意到目前正在处理的问题已更新为新答案的原因。

通常,使用FireBug将真正帮助您了解网站的运作方式。我建议你开始使用它,如果你想更好地了解SO是如何构思的。

此致

答案 1 :(得分:1)

查看firebug控制台,您可以看到它使用ajax发送和接收数据。最有可能是从数据库中提取数据的脚本。

你可以很容易地用jQuery做到这一点。

<script type="text/javascript">
  $("#username").autocomplete("search.php");
</script>
<form name="myForm">
  Name: <input type="text" name="username" id="username" />
  Time: <input type="text" name="time" />
</form>

<?php
//search.php
$q = $_GET['q']
$result = $db->query("SELECT username, id FROM users WHERE username LIKE '%$q%'");
while($user = $result->fetch_assoc()){
  echo $user['username']."|".$user['id']."\n";
}

您可以在此处下载插件:http://bassistance.de/jquery-plugins/jquery-plugin-autocomplete/

和jQuery:http://jquery.com

答案 2 :(得分:0)

我建议如果你真的需要知道它是如何工作的,请看看JS documentation,但如果你需要的是快速做,请使用jquery并阅读文档(或购买一个像jQuery Reference Guide这样的书。它确实简化了做AJAX的方式,你可以从服务器发回任何你想要的东西,从JSON到HTML。

BTW,知道输入框值何时发生变化以触发执行AJAX请求的JS的方法是使用输入的onchange event