Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 文件(图像)的自动完成搜索框;可能吗,怎么可能?_Php_Jquery_Html_Css - Fatal编程技术网

Php 文件(图像)的自动完成搜索框;可能吗,怎么可能?

Php 文件(图像)的自动完成搜索框;可能吗,怎么可能?,php,jquery,html,css,Php,Jquery,Html,Css,我想给用户一个自动完成输入字段(结果中有图像),用于搜索文件夹/devices,其中填充了GIF的“AAU01-010.GIF”、“AAU01-020.GIF” 我希望他们能够搜索文件名。 既然我在网上找不到任何东西,这可能吗?如果可能,怎么可能 另外,我从另一个在线示例中获取了底层代码,仍然需要根据自己的需要进行更改 $(函数(){ $(“我的ac”)。自动完成({ 资料来源:[ { 价值:“汤姆·汉克斯”, 标签:“汤姆·汉克斯”, 描述:“演员”, 图片:“hanks.png” }, {

我想给用户一个自动完成输入字段(结果中有图像),用于搜索文件夹/devices,其中填充了GIF的“AAU01-010.GIF”、“AAU01-020.GIF”

我希望他们能够搜索文件名。 既然我在网上找不到任何东西,这可能吗?如果可能,怎么可能

另外,我从另一个在线示例中获取了底层代码,仍然需要根据自己的需要进行更改 $(函数(){

$(“我的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));
    
    ?>