【问题标题】:PHP - autocomplete with php and javascriptPHP - 使用 php 和 javascript 自动完成
【发布时间】:2014-12-06 19:15:17
【问题描述】:

我正在编写一个自动完成脚本,我首先使用 php 从本地目录读取文件,如下所示:

<?php
$file = glob('pages/*');
//var_dump($file); 

foreach($file as $value)
{
    $output = substr($value, 6, strlen($value) - 6);
    //echo($output)."<br>";
}
?>

上面的脚本显示了'pages'文件夹中的所有文件,即pageone.html,pagetwo.html....

然后我使用一个 javascript 文件来显示一个文本字段,当输入例如“page”时,应该显示一个自动完成选项,比如“pageone.html”或“pagetwo.html”等

<html lang="en">
<head>
<meta charset="utf-8">
<title>jQuery UI Autocomplete - Default functionality</title>
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.9.1.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
<link rel="stylesheet" href="/resources/demos/style.css">
<script>
$(function() {
var availableTags = ["
<?php echo $output; ?>"
];
$( "#tags" ).autocomplete({
source: availableTags
});
});
</script>
</head>
<body>
<div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags">
</div>
</body>
</html>

我把上面的php代码和这个js合并成一个php文件

如图所示,我尝试将 '$output' 嵌入到 js 'availableTags' 变量中,但是当我在文本字段中键入内容时,什么也没有发生......我确定它与嵌入的 php 代码有关js所以任何帮助将不胜感激

【问题讨论】:

    标签: javascript php jquery html autocomplete


    【解决方案1】:

    您的$output 仅包含一个值(列表中的最后一个文件)。您可以创建一个文件数组,例如:

    $res = array();
    foreach($file as $value)
    {
        $res[] = substr($value, 6, strlen($value) - 6);
    }
    

    并将其传递给 javascript:一个 javascript 数组(带有 json_encode 函数)

    <script>
    $(function() {
    var availableTags = <?=json_encode($res)?>
    ...
    

    【讨论】:

      【解决方案2】:

      您可以使用autocomplete.js。 jQuery UI 更加精简和易于使用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-08
        • 2012-02-08
        • 2023-04-09
        • 2015-09-25
        • 1970-01-01
        • 2017-11-11
        相关资源
        最近更新 更多