Fórum Novamente problema com jquery, ajax e bd #471456
27/02/2014
0
[HttpPost]
public JsonResult MontaMenuInferior()
{
AgaxturCmsEntities db = new AgaxturCmsEntities();
try
{
var resultado =
(from c in db.TB_MENUSUPERIOR_CATEGORIAS
join s in db.TB_MENUSUPERIOR_SUBCATEGORIAS on c.id equals (s.Id_Categoria)
where c.Ativo == 1 && s.Ativo == 1 && s.CdCliente == 1
select new
{
c.id
,c.Categoria
,s.Id_Categoria
,s.SubCategoria
}).ToList();
return Json(new { resultado }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
return Json(new { resultado = ex.Message }, JsonRequestBehavior.AllowGet);
}
}Agora minha jquery e o html que vai ser populado.
function MontaMenuInferior() {
$.ajax({
url: '/Home/MontaMenuInferior',
dataType: "json",
contentType: "application/json; charset=utf-8",
type: "POST",
success: function (data) {
$(data.resultado).each(function () {
alert(this.id);
if (this.Id == 2) {
$("#americasul").append('<li><a href="#" title="' + this.Categoria + '" alt="" >' + this.Categoria + '</a></li>');
if (this.Id_Categoria == this.Id) {
$("#americasul").append('<li><a href="#" title="' + this.SubCategoria + '" alt="" >' + this.SubCategoria + '</a></li>');
}
}
if (this.Id == 6) {
alert(this.Id);
$("#brasil").append('<li><a href="#" title="' + this.Categoria + '" alt="" >' + this.Categoria + '</a></li>');
if (this.Id_Categoria == this.Id) {
$("#brasil").append('<li><a href="#" title="' + this.SubCategoria + '" alt="" >' + this.SubCategoria + '</a></li>');
}
}
});
},
error: function (error) {
}
});
}Meu html
<ul class="grid_4" id="brasil">
</ul>
<ul class="grid_4" id="americasul">
</ul>
Pjava
Curtir tópico
+ 0Posts
27/02/2014
Pjava
[HttpPost]
public JsonResult MontaMenuInferior()
{
AgaxturCmsEntities db = new AgaxturCmsEntities();
try
{
var resultado =
(from c in db.TB_MENUSUPERIOR_CATEGORIAS
//join s in db.TB_MENUSUPERIOR_SUBCATEGORIAS on c.id equals (s.Id_Categoria)
where c.Ativo == 1
select new
{
c.id
,c.Categoria
,sub = (from s in db.TB_MENUSUPERIOR_SUBCATEGORIAS where s.Id_Categoria == c.id
&& s.Ativo == 1 && s.CdCliente == 1
select new { s.Id_Categoria, s.SubCategoria }) ==>> NESSE PONTO NÃO SEI O QUE COLOCAR
}).ToList();
return Json(new { resultado }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
return Json(new { resultado = ex.Message }, JsonRequestBehavior.AllowGet);
}
} Gostei + 0
27/02/2014
Murilo Teixeira
Você tem: MÃE => N FILHOS;
Então MÃE tem uma Lista de FILHOS.
public class TB_MENUSUPERIOR_SUBCATEGORIAS
{
public int Id_Categoria { get; set; }
public int Ativo { get; set; }
public int CdCliente { get; set; }
}
public class TB_MENUSUPERIOR_CATEGORIAS
{
public List<TB_MENUSUPERIOR_SUBCATEGORIAS> ListaFilho { get; set; }
public int id { get; set; }
public string Categoria { get; set; }
public int Ativo { get; set; }
}
public void Carregar()
{
var listaMae = from c in db.TB_MENUSUPERIOR_CATEGORIAS
where c.Ativo == 1
select new
{
c.id,
c.Categoria,
}.ToList();
foreach (var mae in listaMae)
{
mae.ListaFilho = from s in db.TB_MENUSUPERIOR_SUBCATEGORIAS
where mae.id = s.Id_Categoria && s.Ativo == 1 && s.CdCliente == 1
select new
{
s.Id_Categoria,
s.SubCategoria
}.ToList();
}
}
No retorno do jquery vc terá dois foreach... o primeiro percorrendo o data.resultado adicionando o 1o elemento, ai fazendo o segundo foreach percorrendo o this.ListaFilho;
Gostei + 0
27/02/2014
Pjava
Gostei + 0
27/02/2014
Murilo Teixeira
[HttpPost]
public JsonResult MontaMenuInferior()
{
AgaxturCmsEntities db = new AgaxturCmsEntities();
try
{
var resultado = from c in db.TB_MENUSUPERIOR_CATEGORIAS
where c.Ativo == 1
select new
{
c.id,
c.Categoria,
ListaSubMenu = from s in db.TB_MENUSUPERIOR_SUBCATEGORIAS
where c.id = s.Id_Categoria && s.Ativo == 1 && s.CdCliente == 1
select new
{
s.Id_Categoria,
s.SubCategoria
}.ToList(),
}.ToList();
return Json(new { resultado }, JsonRequestBehavior.AllowGet);
}
catch (Exception ex)
{
return Json(new { resultado = ex.Message }, JsonRequestBehavior.AllowGet);
}
}
Gostei + 0
28/02/2014
Pjava
function MontaMenuInferior() {
var str = "";
$.ajax({
url: '/Home/MontaMenuInferior',
dataType: "json",
contentType: "application/json; charset=utf-8",
type: "POST",
success: function (data) {
$(data.resultado).each(function () {
str = str + '<ul class="grid_4">' +
'<li>' + this.Categoria + '</li>';
$(this.subconsulta).each(function () {
str = str + '<li><a href="#" title="">' + this.SubCategoria + '</a></li>';
});
str = str + '</ul>';
$('#menufooter').append(str);
str = "";
});
},
error: function (error) {
}
});
}Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)