2012-04-17 33 views
0

我目前使用This JQuery作爲我網站上的搜索框。 Javascript當前爲自動完成結果調用.txt文件中的值。但是,因爲我希望我的網站最終可以選擇添加這些值的用戶,所以我希望它從我的數據庫表中調用值來代替。使用PHP填充搜索輸入框,使用MySQL表中的值

$(document).ready(function(){     
     $("#select3").fcbkcomplete({ 
      json_url: "data.txt", 
      addontab: true,     
      maxitems: 10, 
      input_min_size: 0, 
      height: 10, 
      cache: true, 
      newel: true, 
      select_all_text: "select", 
     }); 
    }); 

格式化的.txt文件的:

[{"key": "hello world", "value": "hello world"}, {"key": "movies", "value": "movies"}, 

我認爲解決辦法是不是調用data.txt中,以

調用.txt文件的JQuery的索引頁調用data.php並將此代碼拉入值:

$getData = mysql_query("SELECT Name FROM tblCocktails"); 

while($info = mysql_fetch_array($getData)) 
{ 
    echo "key: value:".$item['Name']"key: value:".$item['Name']'; 
} 

但是,這似乎不工作,我的debuggi ng在Dreamweaver上決定不起作用。任何幫助,將不勝感激。

+0

試着看看你的代碼更多一點carefull年。你發佈的php代碼有很多語法錯誤。 – 2012-04-17 23:51:27

+0

我設法解決這個問題,我分離回聲到單獨的行來找出語法錯誤,php以正確的格式顯示我的表的值: $ getData = mysql_query(「SELECT Name FROM tblIngredient」); 而($信息= mysql_fetch_array($的getData)) { 回聲 「{\」 鍵:值:\ 「; \t回聲$信息[ '名稱']; \t回聲 」鍵:值:\「」 ; \t echo $ info ['Name']; \t echo「},」; } – MattHeywood 2012-04-18 14:46:12

回答

1

在while循環中查看echo一行。您應該用信息替換項目。

像這樣。

$getData = mysql_query("SELECT Name FROM tblCocktails"); 

while($info = mysql_fetch_array($getData)) 
{ 
    echo "key: value:".$info['Name']."key: value:".$info['Name']; 
} 
+1

我修復了一些其他語法錯誤,但OP應該真的使用[json_encode()](http://www.php.net/manual/en/function.json-encode.php)而不是嘗試手動將數據放在一起。 – Indrek 2012-04-17 23:58:25

1

你的反應必須是在JSON格式,試試這個在您的PHP文件:

$getData = mysql_query("SELECT Name FROM tblCocktails"); 

$data = array(); 
while($info = mysql_fetch_assoc($getData)) 
{ 
    $data[] = $info['Name'];  
} 
echo json_encode($data);//data array is converted in json format response 
+0

我試過了,沒有錯誤發生,但data.php文件不包含任何數據庫值,所以沒有autosuggest值被下拉。 – MattHeywood 2012-04-18 00:31:46

2

我會用json_encode(),而不是硬編碼字符串

//if you want other field of the database like value, I mofidied your query for this 
$getData = mysql_query("SELECT Name, Value FROM tblCocktails"); 
$index=0; 
while($info = mysql_fetch_array($getData)) 
{ 
    //this will be storage every row of your table in an array until while is finish 
    $value[$index]=new Array("key"=>$info['Name'], 
          "value"=>$info['Value'] 
          ); 
    $index++; 
} 
//convert the array into a json string 
echo json_encode($value); 

這應該輸出一些像你需要的東西

+1

你可以簡單地通過丟失'$ index'變量來代替'$ value [] = new Array ...'。 – Indrek 2012-04-18 00:17:04

+0

這引發了一個與變量有關的錯誤:「解析錯誤:語法錯誤,意外的T_ARRAY,期望T_STRING或T_VARIABLE或'$'在第12行的/home/ignitet1/public_html/WhatCocktail/data.php中 – MattHeywood 2012-04-18 00:34:08

相關問題