【发布时间】:2019-10-27 02:28:37
【问题描述】:
我需要一些帮助来获取此下拉过滤器的更多值。 我有 3 个下拉菜单,第一个给我所有“公司”,第二个将显示该公司的所有“区块”,最后一个将给我该区块的所有房间。
所以,我需要在最后一个下拉列表中显示 3 个值('id'、'sala'、'name')。我该怎么做?
我如何获取填充最后一个下拉列表的值:
public function getAmbienteRev(Request $request)
{
$ambientes = DB::table("ambientes")
->where("bloco_id",$request->bloco_id)
->orderByRaw("sala", "asc")
->pluck('sala', 'id');
return response()->json($ambientes);
}
这里是过滤值的代码:
$('#unidade').change(function() {
var unidadeID = $(this).val();
if (unidadeID) {
$.ajax({
type: "GET",
url: "{{url('get-bloco-rev')}}?unidade_id=" + unidadeID,
success: function(res) {
if (res) {
$("#bloco").empty();
$("#bloco").append('<option>Selecione o Bloco</option>');
$.each(res, function(key, value) {
$("#bloco").append('<option value="' + key + '">' + value + '</option>');
});
} else {
$("#bloco").empty();
}
}
});
} else {
$("#bloco").empty();
$("#ambiente").empty();
}
});
$('#bloco').on('change', function() {
var blocoID = $(this).val();
if (blocoID) {
$.ajax({
type: "GET",
url: "{{url('get-ambiente-rev')}}?bloco_id=" + blocoID,
success: function(res) {
if (res) {
$("#ambiente").empty();
$("#ambiente").append('<option>Selecione a Sala</option>');
$.each(res, function(key, value) {
$("#ambiente").append('<option value="' + key + '">' + value + '</option>');
});
} else {
$("#ambiente").empty();
}
}
});
} else {
$("#ambiente").empty();
}
});
我需要这样的东西:
$.each(res, function(key, value, name) {
$("#ambiente").append('<option value="' + key + '">' + value + ' - ' + name +'</option>');
});
我做了这些改变:
->pluck('name','sala', 'id')
和脚本
$.each(res, function(key, value1, value2) {
console.log(res);
$("#ambiente").append('<option value="' + key + '">' + value1 + ' - ' + value2 + '</option>');
});
console.log(res)
{101: "Sala de Aula", 102: "Sala de Aula", 103: "Lab de Criatividade e Inovaçăo", 105: "Atelier de Moda 2", 106: "Sala de Desenho 1", 107: "Sala de Aula", 109: "Sala de Aula", 110: "Sala de Aula", 113: "Sala de Aula", 114: "Atelier de Projeto 2 Design", 115: "Atelier de Projeto 3 Design", 116: "Atelier de Projeto 4 Design", 117: "Atelier de Projeto 5 Design", 118: "Atelier de Projeto 6 Design", 201: "Laboratorio de Simulaçăo e Projetos 1", 202: "Laboratório de Simulaçăo e Projetos 2", 203: "Laboratorio de Telecomunicaçőes", 204: "Laboratorio de Eletronica de Potencia", 206: "Sala de Aula", 207: "Laboratório de Eletrônica", 209: "Laboratório de Eletrônica", 210: "Sala de Aula", 213: "Espaço Fotográfico lab.fotogafico", 214: "Sala de Aula", 215: "Sala de Aula", 216: "Sala de Aula", 218: "Sala de Aula", 219: "Sala de Aula", 220: "Sala de Aula", 221: "Sala de Aula", 001: "Laboratório de Computaçăo 01", 002: "Laboratorio de Computaçăo 02", 002A: "Lab. de Informática 7", 002B: "Lab. de Informática 8", 002C: "Lab. de Informatica 9", …}
但在下拉菜单中显示
<option value="101">Sala de Aula - undefined</option>
【问题讨论】:
-
在
key和value上做一个console.log();看看它们包含什么。您可能需要使用对象表示法,例如value.sala和value.id,如果这是您从 AJAX 调用返回的内容。 -
@TimLewis,他们返回 id 和房间号,但我还需要显示房间的名称。例如:...value="1">001 - 会议室红色
-
请将
console.log(res)的内容添加到您的问题中。它应该是一个 JS 对象数组,并且每个对象都应该有属性sala和id(这就是你要采摘的:->pluck('sala', 'id');) -
这是你要求的吗?
-
是的,但我不确定为什么会这样。也许不使用
->pluck()?替换为->get(),然后在你的函数中,你应该有function(index, ambient),并且每个ambient应该是一个有sala、id和name可用的对象,比如ambient.sala等。跨度>
标签: javascript ajax laravel-5.8