Javascript jquery-使用PHP自动完成
我试图用jQueryUI自动完成搜索字段,但在使用PHP作为源代码时遇到了问题。当我使用变量作为源时,一切正常 JS: 但只要我使用PHP脚本,即使它只是保存一个数组并对其进行编码,它也不会 JS: 建议_search.php:Javascript jquery-使用PHP自动完成,javascript,php,jquery,html,mysqli,Javascript,Php,Jquery,Html,Mysqli,我试图用jQueryUI自动完成搜索字段,但在使用PHP作为源代码时遇到了问题。当我使用变量作为源时,一切正常 JS: 但只要我使用PHP脚本,即使它只是保存一个数组并对其进行编码,它也不会 JS: 建议_search.php: $data = [ "ActionScript", "AppleScript", "Asp", "BASIC", "C", "C++", "Clojure", "COBOL"
$data = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC",
"C",
"C++",
"Clojure",
"COBOL",
"ColdFusion",
"Erlang",
"Fortran",
"Groovy",
"Haskell",
"Java",
"JavaScript",
"Lisp",
"Perl",
"PHP",
"Python",
"Ruby",
"Scala",
"Scheme"
];
echo json_encode($data);
我就是不明白为什么,有什么建议吗
编辑:原来的问题解决了,只是一个链接问题
现在我想从SQL中获取数据,但我不知道我在哪里又犯了错误
我的phpcode:
<?php
header('Content-Type: application/json');
include(scripts/db_connect.php);
$searchTerm = filter_input(INPUT_GET, 'term');
$select = mysqli_query($db_mysqli, " SELECT * FROM $db_table WHERE top_name like '%$searchTerm%'");
while ($row=mysqli_fetch_array($select))
{
$data[] = $row['top_name'];
}
echo json_encode($data);
这并不是那么简单,我真的不知道为什么,但是当你绑定到一个本地数组时,一个简单的数组可以工作,但是如果你绑定到一个远程源,你需要给出一个这个结构的对象数组的结果:
{
"id":"Tetrao tetrix",
"label":"Black Grouse",
"value":"Black Grouse"
}
请查看我从以下方面获得的结果:
因此,您的结果应该匹配该结构才能工作,因为我在中找不到任何与数据结构相关的内容。您必须在数据源文件中使用JSON头
<?php
header('Content-Type: application/json');
$data = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC"
];
echo json_encode($data);
你能试试ajax调用,看看它以那种方式返回什么吗?甚至可以将ajax结果保存到变量json_encode()来执行此操作吗?将我的阵列转换成那种结构?@whatch.idc当然不是。它将如何知道正确的结构。另外,您的数组只是一个简单的数组。你需要一组对象(类)。谢谢你提醒我使用控制台。问题是,我将sourcefile realative的路径指定给了js文件。这是错误的-我必须给它相对于html文件:/
<div id="ui-widget">
<label for="tags"></label>
<input id="tags" class="search_field" type="search" name="suche" maxlength="255">
</div>
{
"id":"Tetrao tetrix",
"label":"Black Grouse",
"value":"Black Grouse"
}
<?php
header('Content-Type: application/json');
$data = [
"ActionScript",
"AppleScript",
"Asp",
"BASIC"
];
echo json_encode($data);
<html>
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
</head>
<body>
<input id="tags">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script type="text/javascript">
$(function() {
$( "#tags" ).autocomplete({
source: 'json.php'
});
});
</script>
</body>
</html>