因为要通过不同的渠道来获取不同的仓库,但是下拉列表点击事件不能确定具体选定的哪个值所以直接用onchange事件,代码如下:$("#channel").change(function () {
var id = $(this).children(‘option:selected’).val();
var datas = {‘id’:id};
$.ajax({
url: “{:url(’/user/ajaxWarehouse’)}”,
type: “POST”,
data: datas,
dataType: “json”,
success:function (data) {
$("#warehouse").empty();
if(data.code==1){
$.each(eval(data.data),function(no,items){
//这一步是显示数据的关键,each方法可以遍历二维数组数据
//data.data:php返回的数据;
//no:键值;
//items:内层数组内容
$("#warehouse").append('<option value='+items.s_id+' >'+items.s_name+'</option>');
});
}
if(data.code==0){
$("#warehouse").append("<option value='0'>该渠道暂无仓库</option>");
alert('请选择渠道');
}
}});
});
后台代码: public function ajaxWarehouse(){
$id = input('id',0);
$res['code'] = 0;
$conn = Db::table('storehouse')->where('ch_id',$id)->field(['s_name','s_id'])->select()->toArray();
if($conn){
$res['code'] = 1;
$res['data'] = json_encode($conn);
$res['msg'] = '成功';
}else{
$res['msg'] = '失败';
}
return json_encode($res);
}
直接在下一个select下拉框里面追加一个option就可以了,需要注意的是要用empty方法移除所有内容,不然每次你点击的一个下拉值他都会存在上面。