jQuery Ui 自动完成没有从 PHP MySQL 文件中获取价值
Posted
技术标签:
【中文标题】jQuery Ui 自动完成没有从 PHP MySQL 文件中获取价值【英文标题】:jQuery Ui autocomplete Not Getting Value From Php MySQL File 【发布时间】:2018-05-04 23:12:23 【问题描述】:我正在使用 jquery ui 自动完成,但是当我试图从简单的 javascript 变量中获取值时,我得到但 jquery Ui 自动完成无法使用 php mysql 文件,这是我的代码
<div class="col-md-12" class="col-centered">
<input id="tags" type="text" class="dic_input ui-autocomplete-input" data-provide="tags" name="ajaxData"/>
<button class="btn btn-lg btn-default"><i class="fa fa-2x fa-search"></i></button>
</div>
这是我的javascript代码
$(function()
var availableTags = [
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
$("#tags").autocomplete(
source: "auto.php",
minLength: 1
);
);
这是我的 php 代码
$db=mysql_connect("localhost","root","");
mysql_select_db("hifzil");
$searchTerm = $_GET['term'];
//get matched data from skills table
$sql ="SELECT lemma FROM lemma WHERE lemma like '" . $searchTerm . "%' ORDER BY lemma LIMIT 0,6";
$q=mysql_query($sql);
while ($row = mysql_fetch_array($q))
$data[] = str_replace("-"," ",$row['lemma']);
//return json data
echo json_encode($data);
【问题讨论】:
这段代码有很多问题。阅读最佳 php 实践。同时,请不要使用这个 我在本地工作,你能找到解决这个问题的方法吗? 【参考方案1】:这是不可能的,首先你在本地做 avaiableTags 但是在你放置一个远程源之后,你的示例是你在 jquery 中找到的基本示例,但是示例在本地所以至少 source:avaiableTags , 如果你想进行远程调用,你可以使用下面的代码,但用 f12 打开浏览器的控制台日志,然后放入你自己的选择项
$("#tags").autocomplete(
source:function(request,response)
$.ajax(
type: "GET",
data:,
url: "auto.php",
dataType: "json",
success:function(data)
console.log(data);
);
,
select: function(event,ui),//your own at the selct item
change: function(event,ui),//your own in change event
response: function(event, ui) //your own in response
minLength: 1
);
在 php 中我认为数组不正确......你必须写
$data[] = array('item'=>str_replace("-"," ",$row['lemma']))
在成功的 javascript 之后,您可以编写
success:function(data)
items= data;
listItem=[];
for (i=0; i<items.length; i++)
listItem[i] = items[i]['item'];
response(listItem);
并且响应将是在选择事件之后的项目列表,您可以在选择...等..等..但必须使用控制台浏览器才能看到答案。
Javascript:
$("#tags").autocomplete(
source:function(request,response)
$.ajax(
type: "GET",
data:term: request.term,
url: "auto.php",
dataType: "json",
success:function(data)
items= data;
listItem=[];
for (i=0; i<items.length; i++)
listItem[i] = items[i]['item'];
response(listItem);
);
,
minLength: 1
);
PHP:
$db=mysqli_connect("localhost","root","","hifzil");
$searchTerm = $_GET['term'];
//get matched data from skills table
$sql ="SELECT lemma FROM lemma WHERE lemma like '" . $searchTerm . "%' ORDER BY lemma LIMIT 0,6";
$data = array();
$q=mysqli_query($db,$sql);
while ($row = mysqli_fetch_assoc($q))
$lemma = str_replace("-"," ",$row['lemma']);
$data[] = array('item'=>$lemma);
//return json data
$result = json_encode($data);
print $result;
【讨论】:
你确定 sql 是正确的吗?如果 json 编码不为空,我插入的代码可以工作我现在尝试过,它可以控制数据库上的查询...[$i]['item'] in javascript 是 json php 中的关键项...使用 mysqli_fetch_assoc不是数组....并且不要使用 mysql 它已弃用使用 mysqli ;) 是的,因为当我尝试通过查询字符串获取结果时,我得到了 我上传了图片你可以看到 那么在 ajax 的数据中插入数据:term: request.term,并使用我的 mysqli_fetch_assoc 和 $data[] = array('item'=>$row['lemma' ]) 你能在这里编辑你的答案吗,这对我很有帮助,我工作了 10 个小时并且卡住了:(以上是关于jQuery Ui 自动完成没有从 PHP MySQL 文件中获取价值的主要内容,如果未能解决你的问题,请参考以下文章
jQuery UI 自动完成多个远程(JSON、PHP、JS)
jQuery UI 自动完成,使用 PHP/MySQL 搜索 2 个表