我已经设置了jquery的autocomlete,如下所示:
<script>
$(document).ready(function() {
$( "input#Filter" ).autocomplete({
source: ["בזן", "גאבה", "אוהד", "יוסי", "שחקן"],
minLength: 2,
});
});
</script>
它有效!
但是我需要从另一个php文件中获取数据,所以我使用了这个
<script>
$(document).ready(function() {
$( "input#Filter" ).autocomplete({
source: "autocomplete.php?file=<?echo $newest?>",
minLength: 2,
});
});
</script>
让我们说autocomplete.php就像
一样简单header("Content-type: application/json; charset=utf-8");
echo json_encode('["אא", "בבבאאא", "גגגאאא"]');
// tried also echo '["אא", "בבבאאא", "גגגאאא"]';
没有用。在各种论坛中寻找了许多解决方案。
要么它显示为jibrish,要么autocompletes显示整个数组,无论我放在文本框中。
看起来这是一个编码问题..
我的两个文件都保存为'ANSI AS UTF-8'。
感谢..
答案 0 :(得分:0)
试试这个autocomplete.php:
<html>
<head>
<meta charset="utf8">
</head>
<body>
<?php echo json_encode('["אא", "בבבאאא", "גגגאאא"]');?>
</body>
</html>
答案 1 :(得分:0)
首先,我对这个自动完成插件没有多少经验 - 这些只是我头脑中的一些想法......
我认为这里的问题是你的PHP文件正在返回一个JSON对象,实际上autcomplete插件需要一个JavaScript数组。我假设这是因为您传递给插件的source
参数...它只是一个正常的数组......
您可能想要尝试的是这样的事情 -
header("Content-Type: text/plain; charset=utf-8");
echo '["אא", "בבבאאא", "גגגאאא"]';
exit();
如果这不是问题,并且autcomplete插件确实想要获得JSON响应,那么您可以尝试将数据包装在普通的PHP数组中,然后再编码为JSON -
header("Content-type: application/json; charset=utf-8");
$names = array(
'ליאור',
'עידו',
'בן'
);
echo json_encode($names);
exit();
在回显JSON数据后请记住exit()
以防止任何其他输出混淆JSON格式。
答案 2 :(得分:0)
我有类似的问题,我设法解决了它。有关详细信息,请参阅我的question。 简而言之:改变 来源:“autocomplete.php?file =”, 至 来源:“autocomplete.php?file = encodeURI ()”,