Ir para conteúdo

POWERED BY:

Arquivado

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

luan_alves

[Resolvido] json com array dimensional

Recommended Posts

boa tarde estou querendo manipular o conteudo que vem de uma resposta json e não estou sabendo como!

aqui esta o codigo que vem via json

[{"categoria":"asdf","id_categoria":"1"},[{"id":"2","titulo":"asfas","status":"false"}],[{"id":"8","titulo":"12","status":"false"}],[{"id":"9","titulo":"13","status":"false"}],[{"id":"11","titulo":"teste","status":"false"}],[{"id":"12","titulo":"teste 2","status":"false"}]]

e aqui esta como eu estou tentando recuperar

$j.getJSON('model/listaLinhaCategoria.php',{id:id},function(data){
       if(data != null)
       {
           $j.each(data, function(i, item){
               var categoria = item.categoria;
               $j("#linhaCategoria").append('<h3>'+categoria+'</h3>');
                $j.each(item, function(i2, item2){
                       var radio = "";
                       var status = item2.status;
                       var title = item2.titulo;
                       var id = item2.id;
                       if(status == 'false')
                       {
                           radio = "<input name='radioCategoria' type='checkbox' id="+id+" />"//.bind('click', function() {alert('oi')});
                       }
                       else
                       {
                           radio = "<input name='radioCategoria' type='checkbox' id="+id+" checked='yes' />"
                       }
                       $j("#linhaCategoria").append('<p>'+title+radio+'<input type="button"  titulo=\''+title+'\' id='+id+'  value="Alterar"/><input type="button" id='+id+' value="Excluir"/></p>');
                   })
          });
       }

a categoria que vem primeiro deverá entrar 1 única vez no código que eu postei ela aparece toda vez que o laço faz uma volta

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu JSON está formatado de maneira incorreta.

Ele deveria está formatado da seguinte forma:

var json = [
  {
     "nome":"asdf",
     "id":"1",
     "itens":[
        {
           "id":"2",
           "titulo":"asfas",
           "status":"false"
        },
        {
           "id":"8",
           "titulo":"12",
           "status":"false"
        },
        {
           "id":"9",
           "titulo":"13",
           "status":"false"
        },
        {
           "id":"11",
           "titulo":"teste",
           "status":"false"
        },
        {
           "id":"12",
           "titulo":"teste 2",
           "status":"false"
        }
     ]
  }
];

console.info(json);

$jq.each(json, function(idx, categoria){
   console.log('Categoria: ' + categoria.nome, ' - Id: ' + categoria.id);
   $jq.each(categoria.itens, function(idx, item){
       console.log('Id: ' + item.id, ' - Título: ' + item.titulo, ' - Status: ' + item.status);
   });
});

Compartilhar este post


Link para o post
Compartilhar em outros sites

obrigado pela a reposta, porem agora a duvida esta na hora de montar o array para o json resolver eu estou montando da seguinte forma

$buscaCat = $db->query("select titulo,id from categoria_produtos where id=$id");
   while($camposCat = $buscaCat->fetch())
   {
       $arquivos[]= array('categoria'=>$camposCat[0],'id_categoria'=>$camposCat[1]);
       $busca = $db->query("select id,id_categoria,titulo,status from linha_produtos where id_categoria=$id");
       while($campos = $busca->fetch())
       {
           $arquivos[]['itens']=array('id'=>$campos[0],'titulo'=>utf8_encode($campos[2]),'status'=>$campos[3]);
       }
   }
echo json_encode($arquivos);

mas o resultado sai esse

[{"categoria":"asdf","id_categoria":"1"},{"itens":{"id":"2","titulo":"asfas","status":"false"}},{"itens":{"id":"8","titulo":"12","status":"false"}},{"itens":{"id":"9","titulo":"13","status":"false"}},{"itens":{"id":"11","titulo":"teste","status":"false"}},{"itens":{"id":"12","titulo":"teste 2","status":"false"}}]

Compartilhar este post


Link para o post
Compartilhar em outros sites

$buscaCat = $db->query("select titulo,id from categoria_produtos where id=$id");
       while($camposCat = $buscaCat->fetch())
       {
           $categoria = array('categoria' => $camposCat[0], 'id_categoria'=> $camposCat[1]);
           $busca = $db->query("select id,id_categoria,titulo,status from linha_produtos where id_categoria=$id");
           while($campos = $busca->fetch())
           {
               $categoria['itens'][] = array('id' => $campos[0], 'titulo' => utf8_encode($campos[2]), 'status' => $campos[3]);
           }
           $arquivos[] = $categoria;
       }
       echo json_encode($arquivos);

 

 

Não testei o código. :)

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.