【问题标题】:Returning results for jQueryUI autocomplete from mySQL database从 mySQL 数据库返回 jQueryUI 自动完成的结果
【发布时间】:2012-03-20 01:28:41
【问题描述】:

我正在尝试使用从 SQL 数据库中提取数据的远程源创建一个自动完成字段:

$("#venuename").autocomplete({
        source: function(req, add){  
                $.getJSON("../autocomplete/venues.php?callback=?", req, function(data) {                        
                        var suggestions = [];
                        $.each(data, function(i, val){
                        suggestions.push(val.name);
                });
                add(suggestions);
        });
}
});

venues.php:

require '../../includes/connect.php';

$param = $_GET["term"];


$query = mysql_query("SELECT * FROM venue_details WHERE venueName REGEXP '^$param'");


for ($x = 0, $numrows = mysql_num_rows($query); $x < $numrows; $x++) {  
    $row = mysql_fetch_assoc($query);  

    $venues[$x] = array("venueName" => $row["venueName"]);  
}


$response = $_GET["callback"] . "(" . json_encode($venues) . ")";  
echo $response; 

我已经为这不起作用的原因绞尽脑汁了好几个小时,并查看了许多在线资源以寻找答案,但没有找到可以解决我的问题的方法。任何帮助将不胜感激。

【问题讨论】:

  • 试试$.getJSON("../autcomplete/venues.php?callback=?", {term:req}, function(
  • 对不起,我应该澄清一下 - 自动完成功能根本不起作用。在字段中输入时什么都没有发生。我尝试过{term:req},但无济于事。
  • 您是否尝试过将您获得的内容记录为req?试试console.log(req.term);alert(req.term);
  • req 包含我在字段中输入的字符串,当我输入新字符/删除字符时会发生变化。
  • 如果您还没有,我建议您使用 Firebug。它很好地显示了请求的结果,以及发生的任何 js 错误......

标签: jquery jquery-ui autocomplete


【解决方案1】:

jquery 自动完成需要返回一个label 和/或value 字段:

标签属性显示在建议菜单中。用户从菜单中选择某些内容后,该值将插入到输入元素中。如果只指定了一个属性,它将同时用于这两个属性,例如。如果您仅提供值属性,则该值也将用作标签。 jquery ui docs

有很多方法可以解决这个问题,但如果你使用的是jsonp,你可以试试jquery ui's example

您可以尝试更改此设置:

$venues[$x] = array("venueName" => $row["venueName"]); 

到这里:

$venues[$x] = array("label" => $row["venueName"]); 

它将使用label 值作为下拉选项和下拉列表的value 属性。

【讨论】:

  • 这正是我出错的地方,感谢您的帮助!
猜你喜欢
  • 2011-02-20
  • 2012-01-06
  • 2021-09-26
  • 2013-07-31
  • 2014-01-30
  • 2014-07-22
  • 2016-09-08
  • 1970-01-01
  • 2012-08-31
相关资源
最近更新 更多