Ir para conteúdo
gust.php

foreach com datatable não funciona

Recommended Posts

Prezados,

Estou tentando usar o datatable com foreach no php e não funciona, ou melhor, funciona quando carrega apenas um registro, se existirem mais registros não funciona, quando recarrego a página para de funcionar tbm.

Podem ajudar?

Estou usando assim:

 


<table class="table table-responsive" id="tableIndexPedido">
                    <thead>
                    <tr>
                      <th>User</th>
                      <th>Data</th>
                      <th>Hora</th>
                      <th>Serviço</th>
                      <th data-priority="1">Açao</th>
                    </tr>
                    </thead>
                <?php foreach ($this->pedido as $p):  ?>
                   
                <tr>
                  <td><?= $p->getUser()->getNome(); ?></td>
                  <td><?= $p->getDATA_INICIO()->format("d/m/Y"); ?></td>
                  <td><?= $p->getHORA_INICIO()->format("H:i"); ?></td>
                  <td><h6><?= \wordwrap($p->getDESCRICAO(), 70, "<br>"); ?></h6></td>
                  <td>
                      <a href="<?= $this->url('servico', array('action' => 'pedidoServico', 'id' => $p->getIDPEDIDO())); ?>"><span class="label label-primary">Confirma</span></a>
                      <a href="<?= $this->url('user', array('action' => 'deletaPedidoServico', 'id' => $p->getIDPEDIDO())); ?>"><span class="label label-danger">Cancela</span></a>
                  
                  </td>
                </tr>
                
                <?php endforeach; ?>
               
              </table>

 


<script>
$(document).ready(function() {
    $('#tableIndexPedido').dataTable({
        "responsive": true,
        "bPaginate": false,
        "ordering": false,
        "info":     false,
        "searching": false,
        "columnDefs": [
            { responsivePriority: 1, targets: 0 },
            { responsivePriority: 2, targets: 4 }

        ]
    } );
} );
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Primeiro precisamos saber se  o conteúdo de $this->pedido são objetos.
Antes do foreach, coloque:
<?php
echo '<pre>';
var_dump($this->pedido);
echo '</pre>';

E nos mostre o que aparece na tela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opá tetsuo.

 

Sim, são objetos ... No caso, pedido é uma classe na qual eu mando para essa view. Posso ter vários objetos Pedidos() com seus atributos.

 

  pedido1   xxx xxx xxx

 pedido2  xxx xxx xxx

.....

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 13/08/2018 at 13:11, tetsuo disse:

Olá!

Primeiro precisamos saber se  o conteúdo de $this->pedido são objetos.
Antes do foreach, coloque:
<?php
echo '<pre>';
var_dump($this->pedido);
echo '</pre>';

E nos mostre o que aparece na tela.

E agora Tetsuo? Tem como ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por gianp
      Prezados, necessito de ajuda!
      Preciso somar os registros da coluna "valor" quando ele for selecionado.
      Exemplo (print):
      Selecionado 2 registros, efetuar a soma, no caso 3.


       
    • Por gianp
      Prezados, necessito de uma ajuda!
      Preciso somar os registros da coluna "valor" quando ele for selecionado.
      Exemplo (print):
      Selecionado 2 registros, efetuar a soma, no caso 3.
       

    • Por Nozaki777
      Preciso disponibilizar uma consulta, dentro de um DataTable. Sendo que os dados listados virá através de um link de API (http://governotransparente.com.br/transparencia/api/v1/json/4393487/pessoas/:nome). Onde "/:nome", tenho que colocar algum nome, e a consulta irá me retornar apenas a lista que contenha o nome que coloquei. Segue a pergunta: como faço para listas todos os dados da tabela, sem especificar nomes, e mostrar esses dados dentro do DataTable?
      Vale ressaltar que o retorno dessa API está no formato json.
    • Por ElytonSilva
      -- Controller Lista os dados do usuário no card public function listardados(){ $matricula = Matricula::where('user_id', Auth::id())->get(); //dd($matricula); return view('dashboard.renovacao.teste', compact( 'matricula')); } -- Controller Salvar os Registros public function store(RenovacaoRequest $request){ $user = Auth()->user(); $dados = $request->all(); $renovacao = Renovacao::create($dados); return view('dashboard.renovacao.confirmacao', compact ('renovacao')); } -- View form @extends('layouts.app') @section('content') <div class="container"> <div class="row"> <form class="form-horizontal " id="regForm" action="{{route('renovacao.store')}}" method="POST"> <div class="card-panel white"> <h4 class="center">Solicitar Renovação</h4> <div class="row"></div> {{ csrf_field()}} <right> <a>**Dados Cadastrados**</a> </right> <div class="row"></div> <div class="row"></div> <div class="row"> @foreach($matricula as $matric) <div class="row"> <div class="col s6 m6"> <div class="input-field {{$errors->has('user_id') ? 'has-error' : ''}} "> <label for="produto">Nome do Pai:</label> <input type="text" class="form-control" name="nomerespo" value="{{ $matric->nomedopai }}"> </div> </div> <div class="col s6 m6"> <div class="input-field {{$errors->has('user_id') ? 'has-error' : ''}} "> <label for="produto">Nome do Aluno(a):</label> <input type="text" class="form-control" name="nomealuno" value="{{ $matric->nomealuno }}"> </div> </div> </div> @endforeach <div class = "row"> <div class="col s12"> <a title="Voltar Para Página Principal" class="btn orange darken-4 btn-info left " href="/admin">Voltar <i class="material-icons left">arrow_back_ios</i> </a> <button type="submit" class="btn orange darken-4 btn-info right">Confirmar <i class="material-icons left">save</i> </button> </div> </div> </div> </div> </form> </div> </div> @endsection No id do usuário ele tem 2 registro só que na hora de salvar ele só salva 1 registro e não os 2 como deveria
      Como Código acima 
       
      Utilizando dd($dados) ;
       
      ele retorna isso e não traz os outros formulários que estava preenchidos que são as mesma coisa 
       
      array:3 [▼
       
      "_token" => "MZOBw295E6W5SEtPPnsvV4seev2GeH3M94rsrI71"
      "nomerespo" => "Mario"
      "nomealuno" => "Maria Joaquina" ]
       
       
       
      1- Ele traz da tabela matricula o user_id relacionado ao usuário logado, automaticamente ele traz e joga no form e nele usuário verificar o nome do responsável e o nome do filho e clica no botão para salvar para confirmar.
      print -> https://prnt.sc/llsn19
       
      2 - Depois que salva o adm vai na aba relatório para verificar se todos os campos foram salvo só que ele só ta salvando o ultimo nome do aluno e do pai queria que salve todos os dados... como estava no primeiro print.
       
      print tela do adm -> https://prnt.sc/llsof3
       
       
    • Por Guilherme Luiz
      Olá pessoal,
       
      Estou com um problema para escrever um arquivo csv utilizando a função FPUTCSV.
      <?php $queryList = "SELECT wzap.id as id, wzap.mobile as mobile, wzap.ddi as ddi, wzap.pushname as pushname, wzap.photo as photo, wzap.dlr_date as dataDlr, case when wzap.status = '0' then 'Pendente' when wzap.status = '1' then 'Enviado' when wzap.status = '2' then 'Entregue' when wzap.status = '3' then 'Não entregue' when wzap.status = '4' then 'Rejeitado' when wzap.status = '5' then 'Expirou' when wzap.status = '6' then 'Agendado' when wzap.status = '7' then 'Falha' end as status, case when wzap.status = '1' and wzap.substatus = '1' then 'Processado' when wzap.status = '2' and wzap.substatus = '1' then 'Ok' when wzap.status = '6' and wzap.substatus = '1' then 'Processado' when wzap.status = '7' and wzap.substatus = '1' then 'Sem saldo' when wzap.status = '7' and wzap.substatus = '2' then 'Erro no processamento' end as descricao, wzap.cost as tarifa, wzap.currency as moeda, wzap.text as texto, w.country as pais, channel.name as canalNome FROM wzap_mt as wzap INNER JOIN worldwide as w ON w.ddi = wzap.ddi LEFT JOIN wzap_channel as channel ON channel.id = wzap.channel_id WHERE wzap.user_id='{$userID}' and wzap.channel_id {$canalID} and wzap.dlr_date BETWEEN '".$inicio." 00:00:00' and '".$final." 23:59:59' UNION ALL SELECT wzap.id as id, wzap.mobile as mobile, wzap.ddi as ddi, null as pushname, null as photo, wzap.dlr_date as dataDlr, case when wzap.status = '0' then 'Pendente' when wzap.status = '1' then 'Enviado' when wzap.status = '2' then 'Entregue' when wzap.status = '3' then 'Não entregue' when wzap.status = '4' then 'Rejeitado' when wzap.status = '5' then 'Expirou' when wzap.status = '6' then 'Agendado' when wzap.status = '7' then 'Falha' end as status, case when wzap.status = '1' and wzap.substatus = '1' then 'Processado' when wzap.status = '2' and wzap.substatus = '1' then 'Ok' when wzap.status = '6' and wzap.substatus = '1' then 'Processado' when wzap.status = '7' and wzap.substatus = '1' then 'Sem saldo' when wzap.status = '7' and wzap.substatus = '2' then 'Erro no processamento' end as descricao, wzap.cost as tarifa, wzap.currency as moeda, wzap.text as texto, w.country as pais, channel.name as canalNome FROM wzap_mt_temp as wzap INNER JOIN worldwide as w ON w.ddi = wzap.ddi LEFT JOIN wzap_channel as channel ON channel.id = wzap.channel_id WHERE wzap.user_id='{$userID}' and wzap.channel_id {$canalID} and wzap.dlr_date BETWEEN '".$inicio." 00:00:00' and '".$final." 23:59:59' UNION ALL SELECT wzap.id as id, wzap.mobile as mobile, wzap.ddi as ddi, wzap.pushname as pushname, wzap.photo as photo, wzap.dlr_date as dataDlr, case when wzap.status = '8' then 'Recebido' end as status, case when wzap.status = '8' and wzap.substatus = '1' then 'Resposta recebida' end as descricao, wzap.cost as tarifa, wzap.currency as moeda, wzap.text as texto, w.country as pais, channel.name as canalNome FROM wzap_mo as wzap INNER JOIN worldwide as w ON w.ddi = wzap.ddi LEFT JOIN wzap_channel as channel ON channel.id = wzap.channel_id WHERE wzap.user_id='{$userID}' and wzap.channel_id {$canalID} and wzap.dlr_date BETWEEN '".$inicio." 00:00:00' and '".$final." 23:59:59' ORDER BY dataDlr DESC"; $sqlList = mysqli_query($connect_sql,$queryList); while($data = mysqli_fetch_assoc($sqlList)){ $stats[] = [ "id" => $data['id'], "mobile" => $data['mobile'], "pais" => $data['pais'], "nome" => $data['pushname'], "canal" => $data['canalNome'], "dataDlr" => date("d/m/y H:i:sa", strtotime($data['dataDlr'])), "status" => $data['status'], "desc" => $data['descricao'], "tarifa" => $data['tarifa'], "moeda" => $data['moeda'], "texto" => $data['texto'] ]; } $filename = sha1($userID.date("Y-m-d").rand(1,100000)); $header = ["ID","Número","País","Nome","Canal","DataStatus","Status","Descrição","Tarifa","Moeda","Texto"]; $file = fopen(BASEPATH."/export/{$filename}.csv", 'w'); //TRECHO PROBLEMATICO ABAIXO fputs($file, $bom =( chr(0xEF) . chr(0xBB) . chr(0xBF) )); fputcsv($file,$header,","); foreach ($stats as $line) { fputcsv($file, $line,","); } //TRECHO PROBLEMATICO ACIMA $fileSize = filesize(BASEPATH."/export/{$filename}.csv"); ?> Meu código traz uma lista de uma consulta do meu banco de dados que fica salva no array $stats.
      Ao fazer o debug do array $stats vejo que os dados são recebidos perfeitamente neste modelo
       
      Array ( [id] => 25 [mobile] => 5511945658451 [pais] => Brasil [nome] => Guilherme [canal] => guilherme business [dataDlr] => 19/11/18 11:51:36am [status] => Entregue [desc] => Ok [tarifa] => 0.1 [moeda] => BRL [texto] => envio via portal - teste de agenda - 11h50m ) Array ( [id] => 28 [mobile] => 5511950917200 [pais] => Brasil [nome] => Comercial [canal] => guilherme business [dataDlr] => 19/11/18 11:51:27am [status] => Entregue [desc] => Ok [tarifa] => 0.1 [moeda] => BRL [texto] => envio via portal - teste de agenda - 11h50m ) Ao fazer o debug também do foreach da variavel $line eu também tenho todos os dados ou seja, minha busca no bd está ok e meu foreach também.
      Assim deveria ser escrito meu CSV onde cada indice do array $stats é uma linha separados por virgula.

      Porem meu csv quando visualizo, traz apenas uma linha no seguinte formato
      ID,Número,País,Nome,Canal,DataStatus,Status,Descrição,Tarifa,Moeda,Texto 27,5511945658451,Brasil,Guilherme,"guilherme business","21/11/18 13:16:41pm",Entregue,Ok,0.1,BRL,"teste foto perfil   Já tentei de tudo e não consigo identificar o porque meu fputcsv está escrevendo apenas uma linha do meu array.
      Vendo este código alguem conseguiria me dar uma luz/orientação?
       
       
×

Informação importante

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