2016-07-25 113 views
-1

我使用下面的腳本自動完成數據:自動填充的Javascript腳本變量

<script> 
    $(function() { 
     var availableTags = [ 
     "Asp", "BASIC", "C", "C++", 
     "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", 
     "Groovy", "Haskell", "Java", "JavaScript", "Lisp", "Perl", 
     "PHP", "Python", "Ruby", "Scala", "Scheme" 
     ]; 

     $(".autocomplete").autocomplete({ 
     source: availableTags 
     }); 
    }); 
</script> 

我將需要使用一個陣列,而不是分配給變量availableTags手冊條目

我試圖像thisgs下面,但它不工作:

<script> 
    $(function() { 
     var availableTags = $result; 

     $(".autocomplete").autocomplete({ 
     source: availableTags 
     }); 
    }); 
</script> 

謝謝

+3

凡'$ result'來自哪裏? – empiric

+0

嗨,$結果是通過SQL查詢加載到不同頁面的數組。 數組在當前頁面中可見,因爲我已經使用PHP包含它。 謝謝 – ChrisA

回答

0

您不能只在javascript上使用php變量(使用數組)。 注:PHP陣列= JS數組

根據您的文件結構你有2種可能:

1. JavaScript是包含在你的PHP文件

<?php 
    $result = array('foo' => 'bar'); 
?> 
<script> 
    var availableTags = <?php echo json_encode($result); ?>; 
</script> 

2 。javascript在另一個文件中分開(您必須在這裏使用ajax來檢索php變量的值):

PHP

<?php 
    $result = array('foo' => 'bar'); 
    echo json_encode($result); 
?> 

JS

<script> 
    var availableTags; 
    $.ajax({ 
     url: 'url/to/php/file.php', 
     dataType: 'json', 
     success: function(data) { 
      availableTags= $.parseJSON(data); 
     } 
    }); 
</script> 
+0

javascript是在同一頁,我試過你的第一個解決方案,但它不起作用。 謝謝 – ChrisA

+0

@ChrisA也許你可以向我們展示更多你的設置(例如php部分)。什麼是*不起作用*意思?任何錯誤? $ result是否包含正確的值? – empiric

+0

嗨, 不幸的是,沒有錯誤信息,我測試它的方式是嘗試在網頁的自動填充文本框中輸入內容。 如果我使用靜態條目,它工作正常 我只是試圖在同一頁中循環和echo $ result來檢查它是否包含值,它確實如此 如果我按照您的建議實現了以下操作,值: '' 謝謝 – ChrisA