我需要使用组合框来执行以下操作。
Select box
有一个默认的城市列表供用户搜索。input
框中输入文字,我需要进行ajax调用以获取数据并向用户显示选项。Select box
使用jQuery autocomplete我可以在用户输入字符串并显示结果时获取json数据。但是,我对如何使用组合框整合它非常不知道。
Combobox使用静态数据数组进行搜索,如果我理解正确,则使用正则表达式匹配值。但是,如何中断它并使用ajax调用从服务器获取数据并更新结果?
自动填写输入文字框:
$( "#searchDestination" ).autocomplete({
delay: 500,
source: function( request, response ) {
$.ajax({
url: "/wah/destinationsJson.action",
dataType: "json",
data: {
term: request.term
},
type: "POST",
success: function(data){
if(data.cities.length == 0)
return response(["No matching cities found for " + request.term]);
response( $.map(data.cities, function(item){
return{
label: item.name,
value: item.name
};
})
);
}
});
},
minLength: 2
});
});
答案 0 :(得分:2)
这可能对你帮我.. another autocomplete插件有所帮助。
另请阅读this
如果要在文本字段中动态加载数据,请使用上面的插件。如果你想使用组合框,那么只需在ready()上加载数据并使用jquery auto complete插件!
答案 1 :(得分:0)
为什么不复制插件和两个组合框。
然后:
$( "#combobox1" ).combobox1({
select: function (event, ui) {
var value = ui.item.value;/*Whatever you have chosen of this combo box*/
$.ajax({
type: "POST",
dataType: 'json',
url: "script.php",
data: {
'anything':value
},
success: function(res)
{
/*replace your next combo with new one*/
$("select#combobox2").html(res);
}
});
}
});
$( "#toggle" ).click(function() {
$( "#combobox1" ).toggle();
});
$( "#combobox2" ).combobox2();
$( "#toggle" ).click(function() {
$( "#combobox2" ).toggle();
});
PHP文件(这基于Codeigniter):
<?php
$data['response'] = 'false';
$keyword = $_POST['anything'];
$query4 = $this->db->query("SELECT * FROM table WHERE field='".$keyword."'");
$data.= "<option></option>";
if($query4->num_rows() > 0)
{
foreach($query5->result_array() as $row)
{
$data.= "<option>".$row['something']."</option>";
}
}
echo json_encode($data);
}
?>
希望这有帮助。