2015-09-26 37 views
0

我有以下問題: 我嘗試使用多個輸入字段創建自動完成而不刷新頁面。第一場內容街道名稱。第二個應該顯示可用的街道號碼。我的JS是這樣的:jquery傳遞數組到自動完成源

$('input#strasse').on('blur', function() { 
var hausnummer1 = $('input#strasse').val(); 
if ($.trim(strasse) != '') { 
$.post('ajax/strasse.php', {hausnummer1: hausnummer1}, function(data) { 
$('div#hausnummer1-data').text(data); 
}); 
} 
}); 

所以,我的主網頁數組:

<div id="hausnummer1-data"></div> 

數據顯示正確。現在,我不會在主頁上聲明此數組爲源2:

 $(function() {  
    var availableTags = <?php echo json_encode($array); ?>;//streets from query 
    var availableTags2 = ?; 
        $("#strasse").autocomplete({ 
         source: availableTags 
        });  
        $("#hausnummer1").autocomplete({ 
         source: availableTags2 
        }); 
}); 

JavaScript不是我的東西。我沒有進一步說明這一點。我感謝任何幫助。

strasse.php

require '../connect.php'; 

$query2 = mysql_query("SELECT distinct(HAUSNRZAHL1) as HAUSNRZAHL1 FROM adresse.90101strasse where STRASSENNAME = '" . mysql_real_escape_string(trim($_POST['strasse'])) . "'"); 
$array2 = array(); 
while ($row2 = mysql_fetch_assoc($query2)) { 
$array2[] = $row2['HAUSNRZAHL1']; 
} 
echo json_encode($array2); 

回答

0

假設AJAX/strasse.php回報以及JSON完成,這應該工作:

$.post('ajax/strasse.php', {hausnummer1: hausnummer1}, function(data) { 
    $("#hausnummer1").autocomplete({ 
      source: data 
      //or maybe 
      source: $.parseJson(data) 
    }); 
}); 

順便說一句,你爲什麼寫$('div#hausnummer1-data')並不僅僅是$('#hausnummer1-data')

+0

仍然相同。我想,陣列是好的。這是我在div標籤之間得到的東西:[「1」,「2」,「3」,「4」,「5」,「6」,「8」,「9」,「10」,「11」 「12」, 「13」]。另一件事,一旦我添加「var availableTags2 = ....任何」$(「#strasse」)。自動完成關閉。似乎有些變量不會彼此相處。應該如此簡單,但它會讓我發瘋。 – Miroslav

+0

也許你應該發佈你的strasse.php代碼,或從它的一些真正的輸出。另外,你是否試圖用你的變量做一些console.log()?像console.log(數據),console.log(availableTags2)等?這些都是非常有價值的信息。 –

+0

我添加了strasse.php。控制檯日誌顯示「未捕獲的ReferenceError:數據未定義」。 hausnummer-data是在函數內部定義的。在global.js中。作爲一個職位。自動完成功能在主頁面上。我gess我必須將函數的變量傳遞給函數? – Miroslav