AJAX成功返回JSON但select选项显示空白,求排查问题
问题分析与解决方案
嘿,我一眼就瞅出问题所在啦!你现在的代码只是把返回的data.type字符串直接塞进了<select>元素里,但<select>要显示可选择的选项,必须要有<option>标签才行——纯文本根本不会被浏览器识别成有效选项,所以看起来自然是空白的。
修正后的代码
你只需要在AJAX的success回调里,把返回的type值包装成<option>元素再添加到select中就行:
$(document).on('click', '.renew', function() { var user_id3 = $(this).attr("id"); $.ajax({ url: "../controller/fetch_single.php", method: "POST", data: { user_id3: user_id3 }, dataType: "json", success: function(data) { // 先清空select里的现有选项(可选,根据你的需求决定是否保留原有选项) $('#bus_type').empty(); // 创建option元素并添加到select中 $('#bus_type').append(`<option value="${data.type}">${data.type}</option>`); // 如果需要默认选中这个选项,可以加上下面这行 // $('#bus_type').val(data.type); } }); });
额外检查点
如果还是有问题,可以排查这几点:
- 确认页面上确实存在ID为
bus_type的<select>元素,ID拼写没有错误 - 在
success回调里加一行console.log(data),打开浏览器控制台确认返回的JSON数据确实包含type字段且值正确 - 如果需要保留select里的原有选项,去掉
$('#bus_type').empty()这行就行
内容的提问来源于stack exchange,提问作者eastwind
相关产品推荐
相关产品推荐

