jquery autosuggest在项目之前添加标题

时间:2013-10-26 22:46:36

标签: php jquery json autosuggest

我正在使用jquery autosuggest,并希望在所有项目出现之前添加默认标题。例如,当用户开始搜索时,第一个下拉项将显示“我们建议:”,然后是项目列表。这是我目前拥有的

 $term=$_GET["term"];

$ query = mysql_query(“SELECT DISTINCT region FROM business region喜欢'$ term%'limit 10”); $ JSON =阵列();

while($region=mysql_fetch_array($query)){
$json[]=array(
                'value'=> $region["region"],
                'label'=>$region["region"]
                    );
}

echo json_encode($ json);

我对php和jquery有一个合理的理解,但不是json

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

新答案: 我之前可能误解了你的问题。也许你只是要求这个:

$( "#mylist" ).autocomplete({
  source: myjsonarray,
  open: function( event, ui ) {
    $('.ui-autocomplete').find('li:first').prepend("<div>We Suggest:</div>")
      }
});

访问“打开”事件,在第一个列表项之前添加div。

老答案:

//make an empty container
$myresults=array();

//manually create your first item
$myfirstitem=array("value"=>"We suggest","label"=>"We suggest")

//put your first item in the container
array_push($myresults,$myfirstitem);

// fetch your data
while $result=mysql_query("SELECT phrase from mytable"){

    //put each item in the container
    array_push($myresults,array(
        "value"=>$result,
        "label"=>$result
        ));
}

//$myresults is now full of phrases. 
///Uncomment this to check it if you want.
//var_dump($myresults);

//encode and echo your result
echo json_encode($myresults);

上面的代码说明了一种做你想做的事情的方法。话虽如此,我可能不会把“我们建议”作为一个实际的选择...如果你提出一个棒球卡列表,用户选择“我们建议”作为他们的最爱是没有意义的棒球卡...

另外,不要让json打扰你 - 这只是一个“符号”。这个例子很简单 - 想一想,并将其用作任何其他数组。

您也可以更有效地执行此操作 - 您无需返回标签和值......但这是另一个对话。

此外,不要使用mysql_ *函数也很重要。看看mysqli和pdo。

祝你好运,我希望有所帮助。