2012-12-01 53 views
0

我儘可能簡化了問題,我覺得這應該起作用。以下腳本控制自動填充功能並按預期工作(如果用戶鍵入't','test'顯示爲建議輸入)。使用PHP變量作爲自動完成源

<script type="text/javascript"> 
$(function() { 
    var availableClients = ['test']; 
    $("#addClient").autocomplete({ 
     source: availableClients, 
    }); 
}); 
</script> 

但是,如果我設置一個PHP變量$測試=「‘測試’」,並在原來的劇本與<?php echo $test; ?>代替「測試」自動完成腳本不再起作用。有沒有另外一種方法可以使用PHP變量作爲自動完成源代碼還是我錯過了一些東西?

編輯:這是PHP中的腳本。

<script type="text/javascript"> 
$(function() { 
    var availableClients = [<?php echo $test; ?>]; 
    $("#addClient").autocomplete({ 
     source: availableClients, 
    }); 
}); 
</script> 

而唯一相關的PHP代碼是這樣的。

$test = "'test'"; 
+0

沒有錯,你可能需要向我們展示更多的代碼。 – jtheman

+0

請包括您想要插入'$ test'的完整PHP代碼以及它生成的輸出。 –

+0

添加了所有相關的代碼。 – scrolls

回答

1

問題可能是您在回顯變量的值時未包含引號。試試這個:

var availableClients = ['<?php echo $test; ?>']; 

事實證明,這個問題實際上是你沒有定義$testecho荷蘭國際集團之前。這:

$test = "'test'"; 

需要發生此:

<script type="text/javascript"> 
$(function() { 
    var availableClients = [<?php echo $test; ?>]; 
    $("#addClient").autocomplete({ 
     source: availableClients, 
    }); 
}); 
</script> 
+0

或當然''如果你有[啓用短打開標籤](http://php.net/manual/en/ini.core.php#ini.short-open-tag)。確保js文件以'.php'結尾或被解釋爲PHP文件,以便執行PHP。 – h2ooooooo

+0

@ h2ooooooo是的,但如果我沒有記錯的話,這些都會被棄用。 –

+0

(由於某種原因我不能@你)根據我的鏈接:'這個指令也影響了PHP 5.4.0之前的速記<?=,它與<?相同。回聲。使用此快捷方式需要打開short_open_tag。從PHP 5.4.0開始,<?=始終可用。「 - 所以它看起來不像它。 – h2ooooooo