首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mysql数据库的jQuery UI自动完成功能

mysql数据库的jQuery UI自动完成功能
EN

Stack Overflow用户
提问于 2012-01-17 02:05:20
回答 3查看 5.2K关注 0票数 0

我整天都在为jQuery自动补全而苦苦挣扎。我不知道如何连接mysql和jQuery数据库。我不知道php文件应该是什么样子,请求是如何发送到php的等等。在jQuery站点上的演示和文档中,有一个简单的远程数据源示例,其中源是: source:"search.php“。那么search.php如何知道我在输入框中输入了什么呢?没有附加到search.php :/的查询,我注意到使用了json。我很困惑,我尝试了十几种方法,但都没有结果。我需要的是简单的自动完成与城市的名称,其中包含我在文本框中键入的文本。

我的数据库看起来像这样:

代码语言:javascript
运行
复制
table_cities:
-------------
id:   -city id
name: -city name

我需要自动补全来显示我的城市,其中包含我在文本框中键入的文本。

"po“将导致”利物浦“”朴茨茅斯“...

代码语言:javascript
运行
复制
html
----
<input type="text" id="cities" />

js
--
$( "#cities" ).autocomplete({
...

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-01-17 02:24:54

您只需要返回一个由id/value对象组成的JSON编码数组。自动补全插件还会发送一个名为"q“的get参数,其中包含当前输入框中的内容。下面是一个简单的search.php文件示例:

代码语言:javascript
运行
复制
$autocomplete_value = mysql_real_escape_string($_GET["q"]);
$sql = "select id, name from table_cities where name LIKE '%$autocomplete_value%'";
$query = mysql_query($sql);

$results = array();
while ($row = mysql_fetch_array($query, MYSQL_ASSOC)) {
    array_push($results, array('id' => $row['id'], 
                               'value' => $row['name']) );
}
echo json_encode($results);

您需要使其适应您可能使用的任何PHP框架,但模式应该是相同的-循环遍历结果,创建一个由“id”和“value”对象组成的数组,然后对其进行json编码。

编辑:您可能希望更新SQL以执行小写比较(因此忽略大小写)和其他类似的增强,但这至少应该让您朝着正确的方向前进。

票数 2
EN

Stack Overflow用户

发布于 2012-01-17 02:12:53

我没有使用过jQuery autocomplete,但看起来很清楚,它会回调你的web服务器,提供已经输入到方框中的数据。web服务器将按您认为合适的方式查询数据库,并返回应显示的结果。

查询将不是jQuery插件的一部分;您必须自己编写该查询。

票数 0
EN

Stack Overflow用户

发布于 2019-03-31 06:48:18

你可以在while循环中使用".=“。

代码语言:javascript
运行
复制
$data = "";
while($row = mysqli_fetch_assoc($result))
{
$data .= "bla bla bla..."
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8884311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档