Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kaolapso

[Resolvido] Loop com alert

Recommended Posts

Pessoal,

 

Criei uma chamada no jquery para trazer uma string serializada para Json.

 

$.ajax({
   type: "POST",
   contentType: "application/json; charset=utf-8",
   url: "Default.aspx/geraMenu",
   data: "{}",    
   dataType: "json",
   success: function (msg) {        
       $("#resultado").html(msg.d);
   }
});

 

O meu codebehind está retornando exatamente isso:

[{"id":"1","cam":"page2.aspx"},{"id":"2","cam":"page3.aspx"},{"id":"3","cam":"page4.aspx"}]

 

Minha pergunta é:

 

O que eu tenho que colocar e como devo colocar abaixo do meu '$("#resultado").html(msg.d);', para que dê um alert na tela com cada item retornado do json?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal,

 

Criei uma chamada no jquery para trazer uma string serializada para Json.

 

$.ajax({
   type: "POST",
   contentType: "application/json; charset=utf-8",
   url: "Default.aspx/geraMenu",
   data: "{}",    
   dataType: "json",
   success: function (msg) {        
       $("#resultado").html(msg.d);
   }
});

 

O meu codebehind está retornando exatamente isso:

[{"id":"1","cam":"page2.aspx"},{"id":"2","cam":"page3.aspx"},{"id":"3","cam":"page4.aspx"}]

 

Minha pergunta é:

 

O que eu tenho que colocar e como devo colocar abaixo do meu '$("#resultado").html(msg.d);', para que dê um alert na tela com cada item retornado do json?

Obrigado.

 

Olá Kaolapso,

 

você tem que colocar o indice do array para acessar a propriedade do objeto.

 

Exemplo:

 

$.ajax({
   type: "POST",
   contentType: "application/json; charset=utf-8",
   url: "Default.aspx/geraMenu",
   data: "{}",    
   dataType: "json",
   success: function (msg) {        
       $("#resultado").html(msg.d);
       for(i=0; i< msg.length; i++){
          alert(msg[i].id + msg[i].cam)
       }
   }
});

 

Espero ter ajudado.

 

Abs

Sérgio

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sérgio, tentei fazer o que você disse mas infelizmente também não funcionou. Ele preenche a div mas não executa os alerts nem dá erro na pagina.Estou começando a achar que o code behind não está tratando o retorno como um objeto json, mas se for isso nem sei o que fazer.

 

Agora fiz uma alteração e mudou o erro, pelo menos. Alterei meu code behind pelo seguinte:

[WebMethod]
       public static object geraMenu(string nome)
       {
           Menu objMenu1 = new Menu { id = "1", cam = "page2.aspx" };
           Menu objMenu2 = new Menu { id = "2", cam = "page3.aspx" };
           Menu objMenu3 = new Menu { id = "3", cam = "page4.aspx" };

           List<Menu> oLista = new List<Menu>()
               {
                   objMenu1, objMenu2, objMenu3
               };
           //System.Web.Script.Serialization.JavaScriptSerializer oSerializer = new System.Web.Script.Serialization.JavaScriptSerializer();

           return oLista;

           //return oSerializer.Serialize(oLista);

           //return new
           //{
           //    retorno = oLista
           //};

           //return Json;
       }

 

Agora, meu retorno para o código:

$(document).ready(function () {
       $.ajax({
           type: "POST",
           url: "Default.aspx/geraMenu",
           data: "{nome:'Walter'}",
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           success: function (msg) {
               alert(msg.d.id);
           }
       });
   });  

 

Tem sido:

[object Object],[object Object],[object Object]

 

O que estou fazendo errado?

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui o que queria fazer. Muito obrigado a todos.

Segue o resultado para quem tiver a mesma dúvida:

 

CodeBehind:

[WebMethod]
       public static object geraMenu(string nome)
       {
           Menu objMenu1 = new Menu { id = "1", cam = "page2.aspx" };
           Menu objMenu2 = new Menu { id = "2", cam = "page3.aspx" };
           Menu objMenu3 = new Menu { id = "3", cam = "page4.aspx" };

           List<Menu> oLista = new List<Menu>()
               {
                   objMenu1, objMenu2, objMenu3
               };
           return oLista;            
       }

 

Javascript:

$(document).ready(function () {
       $.ajax({
           type: "POST",
           url: "Default.aspx/geraMenu",
           data: "{nome:'Walter'}",
           contentType: "application/json; charset=utf-8",
           dataType: "json",
           success: function (msg) {
               //alert(msg.d[1].cam);
               jQuery.each(msg.d, function (index, itemData) {
                   alert("Identificador: " + itemData.id + " - path: "+ itemData.cam);
               });

           }
       });
   });  

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.