我整天都在为jQuery自动补全而苦苦挣扎。我不知道如何连接mysql和jQuery数据库。我不知道php文件应该是什么样子,请求是如何发送到php的等等。在jQuery站点上的演示和文档中,有一个简单的远程数据源示例,其中源是: source:"search.php“。那么search.php如何知道我在输入框中输入了什么呢?没有附加到search.php :/的查询,我注意到使用了json。我很困惑,我尝试了十几种方法,但都没有结果。我需要的是简单的自动完成与城市的名称,其中包含我在文本框中键入的文本。
我的数据库看起来像这样:
table_cities:
-------------
id: -city id
name: -city name
我需要自动补全来显示我的城市,其中包含我在文本框中键入的文本。
"po“将导致”利物浦“”朴茨茅斯“...
html
----
<input type="text" id="cities" />
js
--
$( "#cities" ).autocomplete({
...
谢谢!
发布于 2012-01-16 18:24:54
您只需要返回一个由id/value对象组成的JSON编码数组。自动补全插件还会发送一个名为"q“的get参数,其中包含当前输入框中的内容。下面是一个简单的search.php
文件示例:
$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以执行小写比较(因此忽略大小写)和其他类似的增强,但这至少应该让您朝着正确的方向前进。
发布于 2012-01-16 18:12:53
我没有使用过jQuery autocomplete,但看起来很清楚,它会回调你的web服务器,提供已经输入到方框中的数据。web服务器将按您认为合适的方式查询数据库,并返回应显示的结果。
查询将不是jQuery插件的一部分;您必须自己编写该查询。
发布于 2019-03-30 22:48:18
你可以在while循环中使用".=“。
$data = "";
while($row = mysqli_fetch_assoc($result))
{
$data .= "bla bla bla..."
}
https://stackoverflow.com/questions/8884311
复制相似问题