Javascript 给我一个错误
正如我的标题所说,在使用bootstrap中的typeahead插件时,我需要一些帮助。我是新手。 让我给你看看我到现在为止都做了些什么 我的HTMLJavascript 给我一个错误,javascript,php,twitter-bootstrap,bootstrap-typeahead,Javascript,Php,Twitter Bootstrap,Bootstrap Typeahead,正如我的标题所说,在使用bootstrap中的typeahead插件时,我需要一些帮助。我是新手。 让我给你看看我到现在为止都做了些什么 我的HTML <input type="text" class="form-control" data-provide="typeahead" name="pname" id="pname" autocomplete="off"> 我的Json是 [{"pname":"Chettinad","id":"1"},{"pname":"mobile",
<input type="text" class="form-control" data-provide="typeahead" name="pname" id="pname" autocomplete="off">
我的Json是
[{"pname":"Chettinad","id":"1"},{"pname":"mobile","id":"4"},{"pname":"iPhone","id":"14"},{"pname":"jalli","id":"15"},{"pname":"iphone5s","id":"16"},{"pname":"no image","id":"19"}]
我的PHP代码是
$req = "SELECT pname, id "
."FROM product "
."WHERE pname LIKE '%".$_REQUEST['query']."%' ";
$query = mysql_query($req);
while($row = mysql_fetch_array($query))
{
$results[] = array('pname' => $row['pname'], 'id' => $row['id'] );
}
echo json_encode($results);
每当我试图在文本框中键入一些时。我在控制台中得到了错误
Uncaught TypeError: Cannot read property 'length' of undefined
请帮助我。尝试使用jQuery为您的typeahead创建一个json对象的
names
数组,如下所示:
JS:
以下是在我的JS之后的,我已经给出了我的json数据。请看一看@再见。我不能投票。上面说upvote需要15名代表@Adityathank you。在fiddle中运行良好,但在我的浏览器中,它给了我错误“UncaughtTypeError:无法使用'in'运算符在[{“pname”:“Chettinad”,“id”:“1”}]中搜索'31'”@Aditya@Eric:您必须使用
$.parseJSON(数据)
将响应解析为JSON
:)这很酷:)工作正常。我有一个疑问。当我输入“Che”3个字母时。chettinad名称在建议列表中显示3次。但实际上它是一个。你能猜出来吗?@Eric:小提琴上没有这样的图案,我猜你正在制作的阵列有重复的,或者可能被多次推入。是吗?:)不,当我输入3个字母时,它正在查询,3个字母3次,我的php文件返回3个json输出。
Uncaught TypeError: Cannot read property 'length' of undefined
$('#pname').typeahead({
source: function (query, process) {
names = [];
map = {};
$.each(data, function (i, obj) {
map = obj;
if($.inArray(obj.pname, names)==-1)
names.push(obj.pname);
});
process(names);
}
});