Php 文件(图像)的自动完成搜索框;可能吗,怎么可能?
我想给用户一个自动完成输入字段(结果中有图像),用于搜索文件夹/devices,其中填充了GIF的“AAU01-010.GIF”、“AAU01-020.GIF” 我希望他们能够搜索文件名。 既然我在网上找不到任何东西,这可能吗?如果可能,怎么可能 另外,我从另一个在线示例中获取了底层代码,仍然需要根据自己的需要进行更改 $(函数(){Php 文件(图像)的自动完成搜索框;可能吗,怎么可能?,php,jquery,html,css,Php,Jquery,Html,Css,我想给用户一个自动完成输入字段(结果中有图像),用于搜索文件夹/devices,其中填充了GIF的“AAU01-010.GIF”、“AAU01-020.GIF” 我希望他们能够搜索文件名。 既然我在网上找不到任何东西,这可能吗?如果可能,怎么可能 另外,我从另一个在线示例中获取了底层代码,仍然需要根据自己的需要进行更改 $(函数(){ $(“我的ac”)。自动完成({ 资料来源:[ { 价值:“汤姆·汉克斯”, 标签:“汤姆·汉克斯”, 描述:“演员”, 图片:“hanks.png” }, {
$(“我的ac”)。自动完成({
资料来源:[
{
价值:“汤姆·汉克斯”,
标签:“汤姆·汉克斯”,
描述:“演员”,
图片:“hanks.png”
},
{
值:“Termionator 2”,
标签:“Termionator 2”,
描述:“电影”,
图片:“terminator.png”
}
],
最小长度:1
}).data(“ui自动完成”)。\u renderItem=功能(ul,项目){
var internal_html=''+item.label+''+item.description+'';
返回$(“”)
.data(“item.autocomplete”,item)
.append(内部\u html)
.附录(ul);
};
});
HTML
Ref\u设备
您需要有一个服务器端脚本,并更新现有JavaScript以处理来自控制器的JSON响应,例如使用AJAX。我将用一个基本的PHP脚本更新这个答案
<?php
$sQuery = $_GET['search']; # string to search
$aResults = array(); # empty results array
# loop through directory containing images
if($handle = opendir('./images')) {
while(false !== ($sFileName = readdir($handle))) {
# blacklist particular names to exclude from search
if(in_array($sFileName,array('.','..'))) continue;
# if we find a result, add it to the array of results
if(stristr($sFileName,$sQuery)) $aResults[] = $sFileName;
}
}
# return jSON encoded array
exit(json_encode($aResults));
?>
上面是一个可以用来获取结果的PHP示例。应该是可能的,但是您需要有一个服务器端脚本作为源代码,在服务器上返回一个文件数组。非常感谢!但是我对AJAX/JSON很糟糕,不知道如何将其与我的输入框结合起来,只要再多给我一些提示/代码就好了。我不确定是应该让php脚本进行搜索,还是让autocomplete函数进行搜索,因为我也可以用php请求一个文件列表,然后让autocomplete对其进行搜索。。?大约有2300个文件,所以我不知道什么是最佳性能?@Firebirdz我建议您让PHP控制器进行处理,否则人们可以查看您拥有的每个文件的名称,而不管他们搜索什么,每次搜索时,他们都必须下载整个2300多个文件名列表。或者,我想您可以只将列表加载一次到JavaScript中,但通常的方法是让控制器完成工作。我建议用谷歌搜索一个解决方案,用Autocomplete获取结果,因为我对Autocomplete不太熟悉。
<h3>Ref_Devices</h3>
<div style="height:300px;">
<input type="text" id="my_ac"/>
<div class="list_item_container">
<div class="image"><img src=""></div>
<div class="label"></div>
<div class="description"></div>
</div>
<?php
$sQuery = $_GET['search']; # string to search
$aResults = array(); # empty results array
# loop through directory containing images
if($handle = opendir('./images')) {
while(false !== ($sFileName = readdir($handle))) {
# blacklist particular names to exclude from search
if(in_array($sFileName,array('.','..'))) continue;
# if we find a result, add it to the array of results
if(stristr($sFileName,$sQuery)) $aResults[] = $sFileName;
}
}
# return jSON encoded array
exit(json_encode($aResults));
?>