2014-03-25 66 views
0

我上自动完成脚本,我第一次使用PHP的本地目录中读取文件的工作,如下图所示:PHP - 自动完成与PHP和JavaScript

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

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

上述脚本显示在“页面中的所有文件'文件夹,即pageone.html,pagetwo.html ....

然后,我使用JavaScript文件来显示一个文本字段,当输入例如'页面'时,应该显示aome自动填充选项说'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文件

如图

,我尝试嵌入“$输出”到JS“availableTags”变量,但是当我在文本字段中键入一些,没有什么发生..我相信它必须与嵌入在js的PHP代码,所以任何帮助,将不胜感激

回答

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)?> 
... 
+0

工程就像一个魅力..thankyou! – AS17