2012-10-14 37 views
0

我需要jquery catcomplete一個JSON和我想請你幫我......如何爲jquery自動填充創建json代碼?

我有這樣的代碼

$(".autocomplete").autocomplete({ 
    source: "files/news.php?listar=json" 
}); 

而且我想「文件/ news.php?listar = JSON」到顯示如下:

[ 
    { label: "title1", category: "category1" }, 
    { label: "title2", category: "category2" } 
] 

你能幫我嗎?

@edit:

我想這一點,但沒有奏效:

if ($_GET['listar'] == 'json') 
{ 
    echo '['."\n"; 
    $query = mysql_query("SELECT * FROM noticias WHERE deletada='0' ORDER BY id DESC"); 
    $a = 0; 
    while ($noticia = mysql_fetch_array($query)) 
    { 
     echo ' { label: "'.$noticia['titulo'].'", category: "'.ucwords(Categoria($noticia['categoria'])).'" }'; 
     $a++; 

     if ($a < mysql_num_rows($query)) 
     { 
      echo ",\n"; 
     } 
    } 
    echo "\n".']'; 

    exit; 
} 
+1

因此,它實際上是一個PHP的問題???你的標題和類別從哪裏來?寫一些PHP代碼並使用'json_encode' – Bergi

+0

顯示的JSON無效..鍵應該用雙引號。如果這是一個PHP問題,請查看'json_encode(array)'。如果你花更多時間把一個簡潔明確的問題放在一起,將來會有所幫助。因爲它是現在...每個人都會猜測你的問題 – charlietfl

回答

2

你不需要寫自己的JSON,因爲它已經功能json encode()http://php.net/manual/en/function.json-encode.php

if ($_GET['listar'] == 'json') 
{ 
    $query = mysql_query("SELECT * FROM noticias WHERE deletada='0' ORDER BY id DESC"); 
    while ($noticia = mysql_fetch_array($query)) 
    { 
    $results[] = array(
     'label' => $noticia['titulo'], 
     'category' => $noticia['categoria'] 
    ); 
    } 
} 

$json = json_encode($results); 
header('Content-type: application/json'); 
echo $json; 
exit; 
+2

謝謝!這工作得很好 –

3

的問題是有點混亂。您期待PHP中的JSON。在PHP中,可以使用函數json_encode中的內部版本將任何數組轉換爲JSON並將其作爲響應返回。

您的標籤建議您在JS中使用它。在JS,嘗試json2.js

+1

我知道json_encode(),但它只適用於數組...我如何將所有東西連接成一個數組? –

+0

你是什麼意思?你的意思是物體嗎?檢查http://stackoverflow.com/questions/6836592/serializing-php-object-to-json –