通过Ajax向php函数发送搜索词和自定义标志
我正在寻找一种过滤自动完成结果的方法,如果自定义标志与搜索词一起发送到函数。例如,如果用户希望查找所有拥有体育场/游泳池等的城市,他可以选择此作为过滤选项通过Ajax向php函数发送搜索词和自定义标志,php,jquery,ajax,codeigniter,Php,Jquery,Ajax,Codeigniter,我正在寻找一种过滤自动完成结果的方法,如果自定义标志与搜索词一起发送到函数。例如,如果用户希望查找所有拥有体育场/游泳池等的城市,他可以选择此作为过滤选项 var filter = $.inArray('1', selectedTypes); 这一行只搜索一个标志以查看它是否工作 我已经设置了自动完成,没有过滤器也可以正常工作,但现在我不知道如何设置它。感谢您的帮助 jQuery: $('#city').autocomplete({ delay: 0, sour
var filter = $.inArray('1', selectedTypes);
这一行只搜索一个标志以查看它是否工作
我已经设置了自动完成,没有过滤器也可以正常工作,但现在我不知道如何设置它。感谢您的帮助
jQuery:
$('#city').autocomplete({
delay: 0,
source: function (request, response) {
var selectedTypes = $("#filter").val();
var filter = $.inArray('1', selectedTypes);
$.ajax({
url: "/cities/ajaxGetCities/" + request.term,
dataType: "json",
contentType: "application/json",
success: function (data) {
if (typeof(data[0]) === 'undefined') {
return null;
}
response($.map(data, function (value, key) {
return {
label: value.cityName,
value: value.id
}
}));
}
});
},
select: function (event, ui) {
$("#city").val(ui.item.label);
return false;
},
autoFocus: true
});
PHP(在控制器中,使用CodeIgniter):
我在JS中尝试了这一点,并删除了controller中的func参数,但$\u帖子是空的
$.ajax({
type: 'POST',
data: {term: request.term, flag: filter},
url: "/cities/ajaxGetCities",
dataType: "json",
contentType: "application/json",
success: function (data) {
if (typeof(data[0]) === 'undefined') {
return null;
}
response($.map(data, function (value, key) {
return {
label: value.cityName,
value: value.id
}
}));
“该$\u帖子为空”
…这是因为由于指定了
contentType: "application/json"
在AJAX选项中。但是服务器期望什么呢?默认情况下,PHP需要的是标准格式的数据,而不是JSON。如果发送JSON,则需要一点额外的代码来处理它
如果您只是从AJAX选项中删除该行,那么数据将作为表单数据发送(默认设置),PHP应该能够将其作为标准POST变量读取
“该$\u帖子为空”
…这是因为由于指定了
contentType: "application/json"
在AJAX选项中。但是服务器期望什么呢?默认情况下,PHP需要的是标准格式的数据,而不是JSON。如果发送JSON,则需要一点额外的代码来处理它
如果您只是从AJAX选项中删除该行,数据将作为表单数据发送(默认设置),PHP应该能够将其作为标准POST变量愉快地读取。您使用的是哪种PHP框架?我对php不太熟悉,但我认为这是关键..CodeIgniter@MoshFeu“the$\u POST为空”…这可能是因为您以JSON形式发送数据(由于
contentType:“application/JSON”
)…服务器期望什么?默认情况下,PHP需要的是标准格式的数据,而不是JSON。如果发送JSON,则需要一点额外的代码来处理它。我不知道CodeIgniter是否会帮你这么做。这里是否有使用JSON的特殊需要?试着删除contentType行,看看它是否有用。同样,也许答案会有帮助。@ADyson是的,那是错误,谢谢!你能把你的评论转换成答案吗?你使用的是哪个php框架?我对php不太熟悉,但我认为这是关键..CodeIgniter@MoshFeu“the$\u POST为空”…这可能是因为您以JSON形式发送数据(由于contentType:“application/JSON”
)…服务器期望什么?默认情况下,PHP需要的是标准格式的数据,而不是JSON。如果发送JSON,则需要一点额外的代码来处理它。我不知道CodeIgniter是否会帮你这么做。这里是否有使用JSON的特殊需要?试着删除contentType行,看看它是否有用。同样,也许答案会有帮助。@ADyson是的,那是错误,谢谢!你能把你的评论转换成回答吗?