Usuário com melhor resposta
Script

Pergunta
-
Boa noite,
eu preciso implementar um script que ao mudar um DropDownList um segundo DropDownList retorne com a index "0", no caso "#Med_Produto", alguém tem uma sugestão?
Eu preciso que o usuário mude o Drop "Med_Produto". No caso abaixo esta retornando com um registro do banco.
CONTROLLER:
[HttpPost] public ActionResult RetornaProduto(string codigo) { var _Codigo = Convert.ToInt32(codigo); var query = from c in db.Prod_Med_Produto where c.cod_Principio_Ativo == _Codigo orderby c.id descending select new { c.id, c.nome_comercial }; return Json(query); }
VIEW:
@Html.DropDownList("cod_Med_Principio_Ativo", null, String.Empty, new { Name = "cod_Med_Principio_Ativo", id = "Principio", @class = "form-control" }) @Html.DropDownList("cod_Med_Produto", null, String.Empty, new { name = "cod_Med_Produto", id = "Med_Produto", @class = "form-control" })
$("#Principio").change(function () { var dados = $(this).val().toString(); var options = ""; if (dados != 0) { $.ajax({ url: '@Url.Action("RetornaProduto", "Principal")', type: 'POST', dataType: 'json', data: { codigo: dados }, success: function (result) { options += '<option value="" selected></option>'; $.each(result, function (key, val) { options += '<option value="' + val["id"] + '" selected>' + val["nome_comercial"] + '</option>'; }); $("#Med_Produto").html(options); } }); } else { console.log(options) $("#Med_Produto").html(options); } }).change();
Respostas
-
Olá Wilson,
Acredito que com os códigos abaixo, tudo deva funcionar....
CONTROLLER
[HttpPost] public ActionResult RetornaProduto(string codigo) { var _Codigo = Convert.ToInt32(codigo); var query = from c in db.Prod_Med_Produto where c.cod_Principio_Ativo == _Codigo orderby c.id descending select new { c.id, c.nome_comercial }; return Json(query, JsonRequestBehavior.AllowGet);; }
VIEW
$("#Principio").change(function () { var dados = $(this).val().toString(); var options = ""; if (dados != 0) { $.ajax({ url: '@Url.Action("RetornaProduto", "Principal")', type: 'POST', dataType: 'json', data: { codigo: dados }, success: function (result) { $("#Med_Produto").html(''); $("#Med_Produto").append($('<option></option>').val("").html("Selecione")); $.each(result, function (value, option) { $("#Med_Produto").append($('<option></option>').val(option.id).html(option.nome_comercial)); }); $("#Med_Produto").focus(); } }); } else { console.log(options) $("#Med_Produto").html(options); } });
Att, Lucio Rogerio
Espero ter ajudado, se ajudei, por favor Vote como Útil, e se resolvi seu problema, clique em Marcar como Resposta.
- Editado Lucio Rogerio SPBanned quarta-feira, 29 de julho de 2015 00:41 Utilizando data invés de result
- Marcado como Resposta Wilson Boris quarta-feira, 29 de julho de 2015 00:52
quarta-feira, 29 de julho de 2015 00:03