0

我需要一个用于jquery catcomplete的 json ,我希望你能帮助我......

我有这个代码

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

我希望“files/news.php?listar=json”显示如下内容:

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

请你帮助我好吗?

@编辑:

我试过这个,但没有奏效:

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;
}
4

2 回答 2

3

问题有点混乱。您期待 PHP 中的 JSON。在 PHP 中,您可以使用内置函数json_encode将任何数组转换为 JSON 并将其作为响应返回。

您的标签表明您在 JS 中需要它。在 JS 中,尝试json2.js

于 2012-10-14T22:14:59.343 回答
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;
于 2012-10-14T22:19:15.817 回答