2014-03-25 67 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