Ir para conteúdo

Arquivado

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

Hisoka.

Preencher tabela com dados do Json

Recommended Posts

Bom dia,

Preciso de uma ajuda para criar uma tabela com os dados que vierem do json.

php

function historico(){
            
            $idchamado = $this->input->post("idchamado");
            
            $this->load->model("chamado/chamado_model");
            
            $consulta = $this->chamado_model->m_historico($idchamado);
            
               if($consulta->num_rows() == 0){
                die("Histórico não encontrado");
            }
            
            
            
            echo json_encode($consulta);
        }

JS

function carregaTabelaJSon(idchamado){
            $.post(base_url+'/index.php/chamado/chamado_controller/historico', {
    			idchamado: idchamado
    		}, function (data){
    		$('#nometecnico').val(data.nometecnico); 
                (....)
    		}, 'json');

Esse Js preenche apenas 1 campo. Eu queria que preenchesse todos, conforme a quantidade de dados do banco.

<td style="text-align: center;"><input type="text" class="form-control" id="nometecnico"  name='nometecnico'></td>

Usei input porque ele não exibe nada no <td> ou <div> de eu tentar colocar o id em 1 desses. Mas isso é o de menos. Eu so queria saber como faz para listar todos os registros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que fazer um loop e ir preenchendo item por item.

Não use IDs, use classes ou navegue no DOM com .parent e .find

Compartilhar este post


Link para o post
Compartilhar em outros sites

você tem que fazer um loop e ir preenchendo item por item.

Não use IDs, use classes ou navegue no DOM com .parent e .find

Amigo,

Consegui chegar até aqui

function carregaTabelaJSon(idchamado){
            $.post(base_url+'/index.php/chamado/chamado_controller/historico', {
    			idchamado: idchamado
    		}, function (data){
				var items = [];
				$.each(data, function(key, val) {
					items.push('<li id="' + key + '">' + val + '</li>');
				});
				$('<ul/>',{'class': 'listagem', html: items.join('')}).appendTo('body');
			
    		}, 'json');
    	}
<ul class="listagem"></ul>

Seguindo o que tu falou, ms ele n me lista nada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

está vindo um array do backend?

function (data){
   console.log(data);

Compartilhar este post


Link para o post
Compartilhar em outros sites

está vindo um array do backend?

function (data){
   console.log(data);

Está sim.

O back ta assim:

Controller

function historico(){
            
            $idchamado = $this->input->post("idchamado");
            
            $this->load->model("chamado/chamado_model");
            
            $consulta = $this->chamado_model->m_historico($idchamado);
            
               if($consulta->num_rows() == 0){
                die("Chamado não encontrado");
            }
            
            
            
            echo json_encode($consulta);
        }

Model

public function m_historico($idchamado = NULL) {
        
        if($idchamado != NULL){
            $this->db->select('*');    
            $this->db->from('historico');
            $this->db->join('chamado', 'historico.chamado_fk = chamado.idchamado');
            $this->db->where("chamado_fk", $idchamado);
        }
        
        return $this->db->get();
        
    }

Eu dei o console.log(data);, ele n retornou em nd. Ms eu dei o alert, ele retornou null.

Estranho, pq se eu usar o $('#nometecnico').val(data.nometecnico);, ele preenche o campo 1 unica vez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem algo errado no teu backend ai.

force os cabeçalhos json, antes da saída

header('Content-Type: application/json');
precisa retornar um array no console log, se não, você não vai conseguir fazer o que quer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nada cara! Mesmo forçando o json, o console.log nem aparece. O alert aparece no maximo [object : object] qnd eu seto um array na mão, ms tbm n serve d nd. Dei uma pesquisada sobre passar dados do php para o json, ms nd mt util. Se tu souber de algum tutorial que explique isso, criar uma tabela via json passado o Id como parâmetro, coloca o link ai p fvr.

Compartilhar este post


Link para o post
Compartilhar em outros sites

você está vendo o console no Ctrl + Shift + J do Firefox ou Chrome? aba console?

tira um print para eu dar uma olhada, por favor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, Hisoka, eu estava com um problema similiar ao seu, no meu script também estava retornando um resultado, o que eu fiz para resolver este problema foi retirar o json_encode dentro das chaves, e colocar fora, isto deu certo para mim, não sei se dará certo para você, boa sorte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite, Hisoka, eu estava com um problema similiar ao seu, no meu script também estava retornando um resultado, o que eu fiz para resolver este problema foi retirar o json_encode dentro das chaves, e colocar fora, isto deu certo para mim, não sei se dará certo para você, boa sorte.

Opa amigo, bom dia! Como assim? Pq o json_encode que eu uso fica com parenteses e não com chaves.

echo json_encode($consulta);

As únicas chaves que tem são as do método.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigos!!!

Estou mais perto do que nunca!!!

Veja, criei um foreach no php que ele me retorna todos os registros da consulta.

 foreach($consulta -> result() as $linha){
            $nome[] = $linha->nometecnico;
            $email[] = $linha->emailtecnico;
            $ramal[] = $linha->ramaltecnico;
            $data[] = $linha->data;
            
             $consulta = array(
            "nometecnico" => $nome,
            "emailtecnico" => $email,
            "ramaltecnico" => $ramal,
            "data" => $data
        );
        }
 echo json_encode($consulta);

Então essa parte do php fechou.

Fiz um loop no jquery, e como o console.log n funciona nem com voodoo, foi na base do alert msm. Dei o alert, e ele me retornou corretamente todos os dados do php. A minha única dúvida é de como passo isso para uma tabela?

 function carregaTabelaJSon(idchamado){
            $.post(base_url+'/index.php/chamado/chamado_controller/historico', {
    			idchamado: idchamado
    		}, function (data){
    		var items = [];
                $.each( data, function( key, val ) {
                  items.push( "<li id='" + key + "'>" + val + "</li>" );
                  alert(val);
                });

                $( "<ul/>", {
                  "class": "my-new-list",
                  html: items.join( "" )
                }).appendTo( "body" );
    		}, 'json');
    	}

Só falta isso amigos, por favor, me ajudem!! Só criar a tabela com esses dados.

Compartilhar este post


Link para o post
Compartilhar em outros sites
 function carregaTabelaJSon(idchamado){
            $.post(base_url+'/index.php/chamado/chamado_controller/historico', {
    			idchamado: idchamado
    		}, function (data){
    		var buscarvalor = '';

                for(var i in data['justificativa']){
                    buscarvalor += '<tr><td>' + data['justificativa'][i] + '</td></tr>';
                }

                $('.add-info').html(buscarvalor);

                // console.log(data);

    		}, 'json');
    	}

Resolvi assim.

Obgd pessoal!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por babylon
      Olá galera tudo bem?
      Deixa eu perguntar, estava mexendo no meu site e queria adicionar em html essa tabela porem esta dando erro pois fica assim:
       

      Porem gostaria que ficasse assim:

      Segue o código da tabela:
      <center><table border="0">
          <tr>
      <td bgcolor="#0092df" width="24%"><a href="/categorias?ename=smartphones"><span style="font-size: 20px; color: #ffffff;"><b> <font color="#0092df">..</font>Bicicleta<br> <font color="#0092df">..</font>Track Bikes<br> <font color="#0092df">..</font>Aro 29 TKS</b></a></span><br><br><font size="5"><center><span style="background-color: #A1CD44">DE:</span></font> <br><font size="5"><s>R$ 1.999,99</center></font></s> </td><td><p><a href="/categorias?ename=smartphones"><img src="/static/img/itembicicleta.jpg"><br><font size="5"><center><span style="background-color: #A1CD44">COM - 60%:</span></font> <br><font size="5">1.199,99</font></center></a></td>
             <td><font color="#ffffff">....</font></td>
              <td bgcolor="#0092df" width="24%"><a href="/categorias?ename=smartphones"><span style="font-size: 20px; color: #ffffff;"><b> <font color="#0092df">..</font>Monitor 24"<br> <font color="#0092df">..</font>Samsung<font color="#0092df">aa.aa</font><br> <font color="#0092df">..</font>1ms 144hz</b></a></span></center></td><td><p><a href="/categorias?ename=smartphones"><img src="/static/img/itemmonitor.jpg"></a></td>
          </tr>
          </table></center>
      O que estaria errado, pois não sei como colocar nessa tabela outro fundo de outra cor, veja que usei td bgcolor="#0092df" para o azul escuro mas não sei como usaria pro "#e4f1fb" para o fundo ficar de azul claro em baixo bem como não ficou correto em altura o "DE:" com o "COM - 60%:".
      Bom é isso, obg.


    • Por clovis.sardinha
      Estou em um impasse pois sei pouco de javascript. Estou fazendo um autocomplete com CI4 e Javascript.
      Consigo gerar, através do controllers/model do CI4 um arquivo em json, mas não consigo retorná-lo para o javascript para poder mostrar as opções para consulta. 
      O console.log mostra que estou obtendo o  json() { [native code] }.
      Segue os dois arquivos para ver se alguém me ajuda.
      //arquivo cidade.js async function carregar_cidade(valor) { if (valor.length >= 3) { //console.log("Pesquisar:" + valor); const dados = fetch('Testes/?cidade='+valor, { method: "get", headers: { "Content-Type": "application/json", "X-Requested-With": "XMLHttpRequest" } }); const resposta = (await dados).json; console.log(resposta); var html = "<ul class='list-group position-fixed'>"; html += "<li class='list-group-item'>" + resposta['cid_nome'] + "</li>"; html += "</ul>"; } } <?php //arquivo Testes.php namespace App\Controllers; use App\Models\CidadeModel; /** NÃO MANDAR PARA O SERVIDOR - APENAS TESTES DE FUNÇÕES E OUTROS ELEMENTOS DO CI4 */ class Testes extends BaseController{ protected $tbCidades; public function __construct(){ $this->tbCidades = new CidadeModel(); } public function index(){ $request = \Config\Services::request(); $client = \Config\Services::curlrequest(); $cidades=[]; if($get=$request->getGet()){ $cities=$get['cidade']; $cidadeFiltrada=$this->tbCidades->getCidByName($cities); $cidades= json_encode($cidadeFiltrada); //dd($cidades); } echo view('Testes/testes'); } public function salvar(){ $request = \Config\Services::request(); if($post=$request->getPost()){ dd($post); } } } <!doctype html> <html lang="pt-br"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <title>Autocomplete</title> </head> <body> <div class="container"> <h1 class="mt-4 mb-4">Formulário</h1> <form class="row g-3"> <div class="col-12"> <label for="cidade" class="form-label">Cidade</label> <input type="text" name="cidade" class="form-control" id="cidade" placeholder="Pesquisar cidade" onkeyup="carregar_cidade(this.value)"> </div> <span ></span> </form> </div> <!-- Optional JavaScript; choose one of the two! --> <!-- Option 1: Bootstrap Bundle with Popper --> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script> <script src="assets/js/cidade.js"></script> </body> </html>
    • Por FabianoSouza
      Olá pessoal.
      Eu já utilizo o FOR JSON PATH para retornar o o resultado de uma consulta com JSON. Isso eu já sei fazer.
       
      O que preciso é criar uma função que receba um SELECT como parâmetro e retorne o resultado desse SELECT já formatado como JSON.
      Estou tentando isso, mas sem sucesso.
       
      A function dbo.fn_retornaJsonPath :
      (@String NVARCHAR(MAX)) RETURNS NVARCHAR(MAX) AS BEGIN BEGIN IF @String <> NULL SET @String = (SELECT @String AS jsonPath FOR JSON PATH) END BEGIN IF @String IS NULL SET @String = '[]' END RETURN @String END Forma de executar:
      SET @sql = 'SELECT ' SET @sql = @sql + ' dbo.fn_retornaJsonPath ((SELECT TT.tema FROM dbo.tabela AS TT WHERE TT.cd = CTT.id)) AS ''temas'' ' SET @sql = @sql + ' FROM dbo.minhaTab AS CTT ' EXEC(@sql) Mas não está rolando....
    • Por clovis.sardinha
      Bom dia.
      Meu problema é o seguinte:
      Estou fazendo uma tabela e preciso mostrar o usuário e várias cidades que pertencem a este usuário.
      O resultado do array é o seguinte:

      Quando passo para a tabela os valores de cidade se repetem para o mesmo usuário até o final e retorna fazendo o mesmo para o próximo usuário. 
      Veja abaixo

       
      Meu código para a tabela é a seguinte:
      <tr> <td align="left"><?php echo $usuario['nome'] ?></td> <td align="left"><?php echo $usuario['nome_orgao'] ?></td> <td align="left"><?php echo $usuario['nome_funcao'] ?></td> <?php foreach($destinos as $key=>$destino):?> <?php $key=0;?> <td align="left"> <?php foreach($destino as $chave=> &$cidade): ?> <?php echo $cidade['cid_nome']."-";?> <?php endforeach;?> </td> <?php $key+=$key; ?> <?php endforeach;?> <td><?php echo date('d/m/Y', strtotime( $usuario['created_at'])) ?></td> <td align="left"><a href="<?php echo base_url('UserAdmin/Usuario/getUsuarioById')."/".$usuario['id_user'] ?>">DETALHES</a></td> </tr> <?php endforeach ?> Onde estou errando? O que tenho de fazer para percorrer este array de modo a aparecer apenas as cidades pertencentes a cada usuário?

    • Por PresleyMenezes
      Olá pessoal, gostaria de saber como copiar o conteúdo de um campo json com muitos pais e filhos e colar em outro campo de pais e filhos do mesmo arquivo json?
       
      agradeço a ajuda de vocês.
      em anexo o arquivo json e o codigo que estou tentando fazer

       

       

       
       
       
       

       

       
×

Informação importante

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