Php 未捕获的类型错误。Item.replace不是一个函数,自动完成插件
我正在使用jQuery插件autoComplete,我正在尝试使用他们的ajax请求,不幸的是,我遇到了一个错误 上面说 item.replace不是object.renderItem上的函数 还有我的PHP响应Php 未捕获的类型错误。Item.replace不是一个函数,自动完成插件,php,jquery,json,ajax,autocomplete,Php,Jquery,Json,Ajax,Autocomplete,我正在使用jQuery插件autoComplete,我正在尝试使用他们的ajax请求,不幸的是,我遇到了一个错误 上面说 item.replace不是object.renderItem上的函数 还有我的PHP响应 $recipient = $_GET['q']; $a_json = array(); $a_json_row = array(); //restrict the store $query_filter = $db->query("SELECT * from master_d
$recipient = $_GET['q'];
$a_json = array();
$a_json_row = array();
//restrict the store
$query_filter = $db->query("SELECT * from master_data.user_account where Name like '%$recipient%'");
while($result_filter = $query_filter->whileFetch()){
$name = htmlentities(stripcslashes($result_filter['Name']));
$user_id = htmlentities(stripcslashes($result_filter['user_id']));
$a_json_row['user_id'] = $user_id;
$a_json_row['value'] = $name;
$a_json_row['label'] = $name;
array_push($a_json, $a_json_row);
}
echo json_encode($a_json);
flush();
下面是JSON输出
[
{"user_id":"5","value":"Melde Feliciano ","label":"Melde Feliciano "},
{"user_id":"46","value":"Melanie Charlton ","label":"Melanie Charlton "}
]
renderItem(项目,搜索)
中的item
是一个对象。尝试将item.replace()
替换为item.label.replace()
$.fn.autoComplete.defaults={
资料来源:0,
明查斯:3,
延误:150,
缓存:1,
菜单类:“”,
renderItem:函数(项,搜索){
//转义特殊字符
search=search.replace(/[-\/\^$*+.()|[\]{}]/g,\\$&');
var re=new RegExp(“(“+search.split(“”).join(“|”)+”,“gi”);
返回“”+项目.标签.替换(重“$1”)+”;
},
onSelect:function(e,term,item){}
};
你的错误是说.replace
不是一个函数,你在找str_replace()
?哎呀,我把php和JS混在一起了,很抱歉是凌晨2点lol:)看看这个问题,看看它是否对你有帮助!“数据”在响应(数据)中等于什么?您能在调用该函数之前将其console.log记录下来吗?
$recipient = $_GET['q'];
$a_json = array();
$a_json_row = array();
//restrict the store
$query_filter = $db->query("SELECT * from master_data.user_account where Name like '%$recipient%'");
while($result_filter = $query_filter->whileFetch()){
$name = htmlentities(stripcslashes($result_filter['Name']));
$user_id = htmlentities(stripcslashes($result_filter['user_id']));
$a_json_row['user_id'] = $user_id;
$a_json_row['value'] = $name;
$a_json_row['label'] = $name;
array_push($a_json, $a_json_row);
}
echo json_encode($a_json);
flush();
[
{"user_id":"5","value":"Melde Feliciano ","label":"Melde Feliciano "},
{"user_id":"46","value":"Melanie Charlton ","label":"Melanie Charlton "}
]
$.fn.autoComplete.defaults = {
source: 0,
minChars: 3,
delay: 150,
cache: 1,
menuClass: '',
renderItem: function (item, search){
// escape special characters
search = search.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
var re = new RegExp("(" + search.split(' ').join('|') + ")", "gi");
return '<div class="autocomplete-suggestion" data-val="' + item.value + '">' + item.label.replace(re, "<b>$1</b>") + '</div>';
},
onSelect: function(e, term, item){}
};