我只是尝试使用jQuery自动完成小部件作为实验。
我以此为例: Autocomplete | Custom Data
但是当我尝试它时,它不会过滤结果。 它只显示我输入内容时的所有结果,然后退回 - 全部'
这是我的代码:
<script>
var projects = <?
while($row = mysqli_fetch_array($resultSQLJSON)){
$resultS = unserialize(base64_decode($row['safe']));
$resultS['login'] = $row['login'];
$resultS['shop'] = $row['shop'];
$resultS['sqlext'] = $row['sql_ext'];
array_push($resultB,$resultS);
}
echo json_encode($resultB);
?>;
$(function() {
$( "#project" ).autocomplete({
minLength: 0,
source: projects,
focus: function( event, ui ) {
$( "#project" ).val( ui.item.label );
return false;
},
select: function( event, ui ) {
$( "#project" ).val( ui.item.shop );
$( "#project-description" ).html( "<b>DB Name:</b> "+ui.item.db_name +"<br><b>DB IP:</b> "+ui.item.db_ip+"<br><b>DB Login:</b> "+ui.item.db_login+"<br><b>DB Pass:</b> "+ui.item.db_pass+"<br><b>Login:</b> "+ui.item.login );
return false;
}
})
.autocomplete( "instance" )._renderItem = function( ul, item ) {
return $( "<li>" )
.append( "<a>" + item.shop + "</a>" )
.appendTo( ul );
};
});
</script>
</head>
<body>
<input id="project">
<input type="hidden" id="project-id">
<p id="project-description"></p>
</body>
PHP while返回有效的json格式作为变量。
一切正常,当我选择一个结果时,我会得到细节和内容,只有过滤不起作用。
似乎无法确定问题所在? 任何想法?
Thx,Bert
编辑: json数据(编辑数据以确保安全;)) login有特殊字符,如&#39;
Dtj6V + RsYD *至
&#39;并通过?
[
{
"db_ip": "XXXX",
"db_name": "XXXX",
"db_login": "XXXX",
"db_port": "XXXX",
"db_pass": "XXXX",
"login": "XXXX",
"shop": "XXXX",
"sqlext": "XXXX"
},
{
"db_ip": "XXXX",
"db_name": "XXXX",
"db_login": "XXXX",
"db_port": "XXXX",
"db_pass": "XXXX",
"login": "XXXX",
"shop": "XXXX",
"sqlext": "XXXX"
},
{
"db_ip": "XXXX",
"db_name": "XXXX",
"db_login": "XXXX",
"db_port": "XXXX",
"db_pass": "XXXX",
"login": "XXXX",
"shop": "XXXX",
"sqlext": "XXXX"
}
]
还尝试过只有&#39; shop&#39;在json数据中,因为我认为它可能是特殊字符左右,但结果相同。