1、前端代码:
<input class="easyui-combobox" id="userId" style="width:200px;"></input>
<script>
$('#userId').combobox({
prompt:'请输入要查询的用户,按空格刷新', //提示信息
//required:true, //是否必填
mode:'remote', //动态去服务器端拿数据;而mode:'local'是取本地数据的也就是javascirpt(内存)中的数据
url:'/user/info/get', //请求数据路径
editable:true, //可编辑
hasDownArrow:false, //下拉面板不关闭
valueField: "id", //数组的键索引
textField: "name", //数组的值索引
onBeforeLoad: function(param){ //onBeforeLoad:在请求加载数据之前触发,返回 false 则取消加载动作,为true的话则重新加载数据。
console.log("------ "+param.q+" ------"); //param.q :combobox框输入的参数,请求方式POST
if(param == null || param.q == null || param.q.replace(/ /g, '') == ''){
var value = $(this).combobox('getValue');
if(value){ //不为空的时候才传关键字到后台,模糊查询数据到前台
param.q = value;
return true;
}
return false;
}
}
});
</script>
2、PHP代码(yaf):
public function getuserAction(){
$keyword = trim($_POST['q']); //POST接收要搜索的关键字
$mUser = new userModel(); //实例化模型
$info = $mUser->getList([['name', 'like', '%'.$keyword.'%']], 'id,name');
die(json_encode($info));
}
3、返回的数据格式:
/**
* @todo json数据示例
*/
public function dataAction(){
$arr = [
['id'=>1, 'name'=>'名字1'],
['id'=>2, 'name'=>'名字2'],
['id'=>2, 'name'=>'名字3'],
['id'=>2, 'name'=>'名字4'],
];
echo json_encode($arr).'<br/>';
echo json_encode($arr, JSON_UNESCAPED_UNICODE); //中文不转义
die();
}
4、json字符串页面打印:
[{"id":1,"name":"\u540d\u5b571"},{"id":2,"name":"\u540d\u5b572"},{"id":2,"name":"\u540d\u5b573"},{"id":2,"name":"\u540d\u5b574"}]
[{"id":1,"name":"名字1"},{"id":2,"name":"名字2"},{"id":2,"name":"名字3"},{"id":2,"name":"名字4"}]