Ajax获取php返回json数据动态生成select下拉框

因为要通过不同的渠道来获取不同的仓库,但是下拉列表点击事件不能确定具体选定的哪个值所以直接用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方法移除所有内容,不然每次你点击的一个下拉值他都会存在上面。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值