Ir para conteúdo
Rafael Motta

[Resolvido] Datatables PDO

Recommended Posts

Olá pessoal, alguem sabe como envio um parametro que recebo por $_REQUEST na pagina sales.php(abaixo), para a pagina jsonData.php(abaixo), tem alguns codigos comentados de algumas tentativas frustradas minhas...

 

sales.php

<?php
require '../../../functions/conexao.php';
require '../../../functions/crud.php';
require '../../../functions/crud2.php';
//header('Content-Type: text/html; charset=utf-8');
$idCustomer = $_REQUEST['idCustomer'];
?>
<link rel="stylesheet" type="text/css" href="http://ajax.aspnetcdn.com/ajax/jquery.dataTables/1.9.4/css/jquery.dataTables.css">
<script type="text/javascript" src="https://code.jquery.com/jquery-2.2.0.min.js"></script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js"></script>
<script language="javascript">
    $(document).ready(function() {
        $('#example').dataTable({
            "scrollX": true,
            "language": {
                "sUrl": "../plugins/datatables/Portuguese-Brasil.json"
            },
            "bProcessing": true,
            "aLengthMenu": [[5, 10, 20, 50, -1], [5, 10, 20, 50, "Todos"]],
            "sAjaxSource": 'jsonData.php',
            "serverSide": true,
            "aoColumns": [
                {"mData": "NOTA"},
                {"mData": "NRO_NOTA"},
                {"mData": "EMISSAO"},
                {"mData": "QUANTIDADE1",
                    render: $.fn.dataTable.render.number()},
                {"mData": "TOTAL1",
                    render: $.fn.dataTable.render.number('.', ',', 2, 'R$')},
                {"mData": "VALOR_DESCONTO1",
                    render: $.fn.dataTable.render.number('.', ',', 2, 'R$')},
                {"mData": "VALOR_IPI1",
                    render: $.fn.dataTable.render.number('.', ',', 2, 'R$')},
                {"mData": "VALOR_SUBST",
                    render: $.fn.dataTable.render.number('.', ',', 2, 'R$')},
                {"mData": "REPRES_NOME"},
                {"mData": "VENDEDOR_NOME"},
                {"mData": "OP_NOME"},
                {"mData": "FRANQUEADO_NOME"},
                {"mData": "TRANSP_NOME"},
                {"mData": "OP_NOME"},
                {"mData": "FRANQUEADO_NOME"},
                {"mData": "TRANSP_NOME"},
                {"mData": "CARTEIRA"},
                {"mData": "OCORRENCIA"},
                {"mData": "DATA_OCORRENCIA"},
                {"mData": "COD_TRANSPORTADOR"},
                {"mData": "RASTREAMENTO_CORREIO"},
                {"mData": "BRUTO",
                    render: $.fn.dataTable.render.number('.', ',', 2, 'R$')},
                {"mData": "PRECO_MEDIO",
                    render: $.fn.dataTable.render.number('.', ',', 2, 'R$')},
                {"mData": "TOTAL_NF",
                    render: $.fn.dataTable.render.number('.', ',', 2, 'R$')},
                {"mData": "DESCRICAO"},
                {"mData": "CONHECIMENTO"},
                {"mData": "VALOR_FRETE",
                    render: $.fn.dataTable.render.number('.', ',', 2, 'R$')},
                {"mData": "PERCENTUAL",
                    render: $.fn.dataTable.render.number('.', ',', 2, '%')}
            ]
        });
        //$.fn.dataTable.ext.errMode = 'throw';
    }
    );
</script>
<div class="row"><br>
    <div class="col-xs-12">
        <div class="panel panel-default">
            <div class="panel-heading">Vendas</div>
            <div class="panel-body">
                <form action="jsonData.php?idCustomer=<?php echo $idCustomer ?>" method="post">
                    <table id="example" class="display nowrap" width="300%" cellspacing="0">
                        <thead>
                            <tr>
                                <th>TESTE</th>
                                <th>TESTE</th>
                                <th>TESTE</th>
                                <th>TESTE</th>
                                <th>TESTE</th>
                                <th>Empresa</th>
                                <th>NF</th>
                                <th>Emissão</th>
                                <th>Itens</th>
                                <th>Bruto</th>
                                <th>Desconto</th>
                                <th>Líquido</th>
                                <th>IPI</th>
                                <th>Subst. Trib.</th>
                                <th>Total NF</th>
                                <th>Preço Médio</th>
                                <th>Representante</th>
                                <th>Vendedor</th>
                                <th>Operador</th>
                                <th>Franqueado</th>
                                <th>Carteira</th>
                                <th>Transportadora</th>
                                <th>Rastreamento</th>
                                <th>Conhecimento</th>
                                <th>Frete</th>
                                <th>%</th>
                                <th>Ocorrência</th>
                                <th>Data Ocorrência</th>
                            </tr>
                        </thead>
                    </table>
                </form>
            </div>
        </div>
    </div>
</div>
<script>
    chamaScripts();
</script>

 

 

jsonData.php

 

<?php

require '../../../functions/conexao.php';
$idCustomer = $_REQUEST['idCustomer'];
//function notasVendas($idCustomer) {
$pdo = conecta();
$consultar = $pdo->prepare("SELECT NOTAS.NOTA,NOTAS.NRO_NOTA,NOTAS.EMISSAO,Sum(NOTAS_ITEM.QUANTIDADE) AS QUANTIDADE1, Sum(NOTAS_ITEM.TOTAL) AS TOTAL1,"
        . " Sum(NOTAS_ITEM.VALOR_DESCONTO) AS VALOR_DESCONTO1, Sum(NOTAS_ITEM.VALOR_IPI) AS VALOR_IPI1, Sum(COALESCE(NOTAS_ITEM.ICMS_SUBST_VALOR,0)) AS VALOR_SUBST, "
        . "REPRESENTANTES.NOME AS REPRES_NOME, VENDEDORES.NOME AS VENDEDOR_NOME, OP_TELEMARKETING.NOME AS OP_NOME, FRANQUEADOS.NOME AS FRANQUEADO_NOME, "
        . "TRANSPORTADORAS.NOME AS TRANSP_NOME, CARTEIRA.CARTEIRA, NOTAS.OCORRENCIA, COALESCE(NOTAS.DATA_OCORRENCIA,'0') AS DATA_OCORRENCIA, "
        . "NOTAS.COD_TRANSPORTADOR,NULLIF(PEDIDOS.RASTREAMENTO_CORREIO,'') AS RASTREAMENTO_CORREIO,"
        . "Sum(NOTAS_ITEM.VALOR_DESCONTO)+Sum(NOTAS_ITEM.TOTAL) AS BRUTO,"
        . "Sum(NOTAS_ITEM.TOTAL)/Sum(NOTAS_ITEM.QUANTIDADE)AS PRECO_MEDIO,"
        . "Sum(NOTAS_ITEM.TOTAL)+Sum(NOTAS_ITEM.VALOR_IPI)+Sum(COALESCE(NOTAS_ITEM.ICMS_SUBST_VALOR,0))AS TOTAL_NF "
        . "FROM NOTAS left outer join pedidos on (notas.pedido = pedidos.pedido) INNER JOIN CARTEIRA ON (NOTAS.COD_CARTEIRA = CARTEIRA.COD_CARTEIRA) "
        . "INNER JOIN NATUREZAS_OPERACAO ON (NOTAS.COD_NATUREZA = NATUREZAS_OPERACAO.COD_NATUREZA) AND (NOTAS.SEQ = NATUREZAS_OPERACAO.SEQ) INNER JOIN NOTAS_ITEM ON "
        . "(NOTAS.NOTA = NOTAS_ITEM.NOTA) INNER JOIN REPRESENTANTES ON (NOTAS.COD_REPRESENTANTE = REPRESENTANTES.CODIGO) INNER JOIN FRANQUEADOS ON "
        . "(NOTAS.COD_FRANQUEADO = FRANQUEADOS.CODIGO) INNER JOIN VENDEDORES ON (NOTAS.COD_VENDEDOR = VENDEDORES.CODIGO) INNER JOIN OP_TELEMARKETING ON "
        . "(NOTAS.COD_OP_TMK = OP_TELEMARKETING.CODIGO) INNER JOIN TRANSPORTADORAS ON (NOTAS.COD_TRANSPORTADOR = TRANSPORTADORAS.CODIGO) "
        . "Where NOTAS.COD_CLIENTE= :idCustomer AND (NATUREZAS_OPERACAO.TIPO=1) GROUP BY NOTAS.NOTA,NOTAS.NRO_NOTA,NOTAS.EMISSAO, REPRESENTANTES.NOME,"
        . "VENDEDORES.NOME, OP_TELEMARKETING.NOME, FRANQUEADOS.NOME, TRANSPORTADORAS.NOME, CARTEIRA.CARTEIRA, NOTAS.OCORRENCIA, NOTAS.DATA_OCORRENCIA, "
        . "NOTAS.COD_TRANSPORTADOR, PEDIDOS.RASTREAMENTO_CORREIO order by NOTAS.NOTA desc");
$consultar->bindValue(':idCustomer', $idCustomer, PDO::PARAM_INT);
$consultar->execute();
$i = 0;
$resultado = [];
while ($linha = $consultar->fetch(PDO::FETCH_ASSOC)) {

    $consultar2 = $pdo->prepare("SELECT CONHECIMENTO,VALOR_FRETE,"
            . "(VALOR_FRETE /" . $linha['TOTAL1'] . ")*100 AS PERCENTUAL FROM CONHECIMENTOS WHERE COD_ENTREGA=1 AND NF=" . $linha['NOTA']);
    $consultar2->execute();
    $linha2 = $consultar2->fetch(PDO::FETCH_ASSOC);
    if (($linha['COD_TRANSPORTADOR']) == 131) {
        $consultar3 = $pdo->prepare("SELECT DESCRICAO FROM OCORRENCIAS_TRANSP_MERCURIO WHERE ID= " . $linha['OCORRENCIA']);
        $consultar3->execute();
        $linha3 = $consultar3->fetch(PDO::FETCH_ASSOC);
    } else {
        $consultar3 = $pdo->prepare("SELECT DESCRICAO FROM OCORRENCIAS_TRANSP WHERE ID =" . $linha['OCORRENCIA']);
        $consultar3->execute();
        $linha3 = $consultar3->fetch(PDO::FETCH_ASSOC);
    }
    $arr[] = $linha;
    $arr2[] = $linha2;
    $arr3[] = $linha3;
    $resultado2 = $arr[$i];
    if (empty($resultado3)) {
        $resultado3 = array(
            "CONHECIMENTO" => 0,
            "VALOR_FRETE" => 0,
            "PERCENTUAL" => 0);
    } else {
        $resultado3 = $arr2[$i];
    }
    $resultado4 = $arr3[$i];

    $res = array_merge($resultado2, $resultado3, $resultado4);
    if (empty($resultado)) {
        array_unshift($resultado, $res);
    } else {
        array_push($resultado, $res);
    }
    $result = array("aaData" => $resultado);
    $i ++;
}
echo json_encode($result);
//}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lá do manual: https://datatables.net/reference/option/ajax.data#Examples

$('#example').dataTable( {
  "ajax": {
    "url": "data.json",
    "data": {
        "user_id": 451
    }
  }
} );

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é cara, mas eu recebo o parametro ($idCustomer), aqui (na pagina sales.php)

$idCustomer = $_REQUEST['idCustomer'];

e se eu fosse enviar ele para a pagina jsonData.php, seria algo tipo isso?

$('#example').dataTable( {
  "ajax": {
    "url": "jsonData.php",
    "data": {
        "cod_cliente": $idCustomer = $_REQUEST['idCustomer'];
    }
  }
} );

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ai é uma confusão entre linguagens. PHP é um coisa e JavaScript é outra.

 

Como o PHP é processado no servidor e o JavaScript é processado no browser, você deve utilizar o PHP para criar/incluir/imprimir informações ao javascript pré-existente.

$('#example').dataTable( {
  "ajax": {
    "url": "jsonData.php",
    "data": {
        "cod_cliente": <?php echo $idCustomer; ?>
    }
  }
} );

 

  • Obrigado! 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu cara!! consegui resolver assim na sales.php

$('#example').dataTable( {
  "ajax": {
    "url": "jsonData.php",
    "type": 'POST',
    "data": {
        "idCustomer": <?php echo $idCustomer; ?>
    }
  }
} );

 

e pra receber o parametro na jsonData.php usei 

$idCustomer = $_POST['idCustomer'];

 

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 patriciahelena
      Boa noite,
       
      Preciso de ajuda.
      No arquivo form.php tenho 3 inputs de entrada(valor1, valor2, valor3) e 3 inputs(disabled) que receberão os valores calculados do arquivo form_matematico5.php.
      Na tag form onsubmit="return calcula()"
       
          <h4 class="calcula"></h4>
       
      <script>
      function calcula($volmedio, $temp, $precogas) {
      $.get("form_matematico5.php", $('#calculorecovap').serialize(),
          function(data){
              $('.calcula').html(data);
          }
      );
      return false;
      }
      </script>
       
       
      No arquivo form_matecatico5.php é feito os calculos gerando 3 valores. 
      Tenho um echo:
      echo 'texto<br><div style=font-size:23px;color:red;>' . number_format($Resultado1,0,",","."). '</div> <br> texto<br><div style=font-size:23px;color:red;>'. number_format($Resultado2,0,",","."). '</div> <br>texto<br><div style=font-size:23px;color:red;>R$ '. number_format($Resultado3,2,",","."). '</div>';
       
      Ele retorna o echo certinho em     <h4 class="calcula"></h4>.
      Mas o que eu quero mesmo é que Resultado1 retorne dentro do primeiro input(disabled), o Resultado2 dento do segundo input(disabled) e assim com o terceiro. Ou seja,
      Cada input(disabled), recebera um valor diferente e não o total de .calcula.
       
      Espero ter explicado direitinho,
      Obrigada
       
       
       
       
       
       
       
    • Por luisfeliperm2
      Estou criando um sistema de login e cadastro de um jogo em php. Conectei ao postgresql e agora estou com um problema. Preciso saber qual criptografia é utilizada. Todas as hashs possuem 32 caracteres e por isso pensei que fosse MD5. Mas não é.
      password - > 62f9f2022536274b47f4daa0887361cf
      teste1 -> deaafc806aef00d0262e098ff089fff1
      Outras senhas criptografadas:
      59a93faaaf6d43ca4c3ef9ec183200ea
      47d163c4e9388dfd4b2dc7c327a33761
      8dffc56f2382d0f5552c04d9fa014d0e
    • Por raphael123
      Estou tentando realizar um insert no banco e está ocorrendo esse erro ao clicar em salvar. Poderiam me ajudar a solucionar esse problema, estou utilizando a linguagem PHP, segue o erro e meu código abaixo.
       


       
      <?php 
       
      $ieqbairro = $_POST['ieqbairro'];
      $pastor = $_POST['pastor'];
      $lider = $_POST['lider'];
      $celulaAtivas = $_POST['celulasativas'];
      $participantes = $_POST['participantescelulas'];
      $quantidade = $_POST['quantidadereunioes'];
      $quantmensais = $_POST['quantidadeensaiosmensais'];
      $diaensaio = $_POST['diaensaio'];
      $hora = $_POST['horaensaio'];
      $totalmenbrosminis = $_POST['totalmembrosdepartamento'];
      $vocal = $_POST['vocal'];
      $mulhercontralto = $_POST['mulhercontralto'];
      $mezzosoprano = $_POST['mezzosoprano'];
      $soprano = $_POST['soprano'];
      $homensbaixo = $_POST['homensbaixo'];
      $baritono = $_POST['baritono'];
      $tenor = $_POST['tenor'];
      $guitarra = $_POST['guitarrista'];
      $baterista = $_POST['bateristas'];
      $tecladista = $_POST['tecladistas'];
      $violao = $_POST['violao'];
      $baixo = $_POST['baixistas'];
      $meialua = $_POST['meialua'];
      $cajon = $_POST['cajon'];
      $outros = $_POST['outros'];
      $ministeriodecarreira = $_POST['ministeriocarreira'];
      $descrinomemstcarreira = $_POST['nomeministeriocarreira'];
      $connect = mysqli_connect('localhost','root','') or die('Erro ao conectar ao banco de dados');
      $db = mysqli_select_db($connect,'1regiao');
      mysqli_set_charset($connect,'utf8');
      $query = mysqli_query($connect,"INSERT INTO tbfichacadadanca (ieqbairro, pastor, lider, celulaAtivas, participantescelulas,
      quantidadecelulas, quantidaensamensal, diaensaio, horaensaio, totalmenbrosminis, vocalquant, mulhercontralto, mulhermezzosoprano, mulhersoprano, homensbaixo, homensbaritono, homenstenor, guitarraqtd, bateristaqtd, tecladistaqtd, violaoqtd, baixoqtd, meialuaqtd, cajonqtd, outros, ministeriodecarreira, descrinomemstcarreira,) VALUES ('$ieqbairro','$pastor','$lider', '$celulaAtivas', '$participantes','$quantidade', '$quantmensais','$diaensaio', '$hora', '$totalmenbrosminis','$vocal', '$mulhercontralto','$mezzosoprano', '$soprano','$homensbaixo', '$baritono','$tenor', '$guitarra','$baterista', '$tecladista','$violao', '$baixo','$meialua', '$cajon','$outros', '$ministeriodecarreira','$descrinomemstcarreira')") or die mysqli_error($query); 
       
      if($query){
             echo"<script language='javascript' type='text/javascript'>alert('Dados Salvos com sucesso!');window.location.href='fichacadastral1regiaodanca.html'</script>";
          }
                
      mysqli_close($connect);
      ?>

    • Por caioandreis
      Olá, pessoal. Tudo bem?
      Gostaria de pedir um direcionamento com a seguinte situação:
       
      Tenho um amigo que tem um site feito em php, com painel gerenciador de conteúdo. Como estou estudando mais a fundo php agora, gostaria de pegar um site que funciona e estudar em cima dele: (alterar tanto layout quanto incluir/retirar novas funcionalidades).
       
      Meu amigo liberou o acesso ao ftp e banco de dados dele, para eu fazer uma cópia e colocar em um localhost (xampp) para estudar em cima dele. Assim, não corro risco de danificar o site dele que está no ar.
       
      Já estou com a pasta do site dentro do htdocs, e o banco de dados importado no phpmyadmin, porém ao tentar acessar o site, o browser acusa erro no servidor. 500
       
      Busquei tutoriais sobre isso, mas encontrei apenas passo-a-passo para sites em wordpress. Com isso, vem a pergunta:
       
      Alguém tem algum tutorial ou poderia me dizer como faço para "plugar" o site com o banco de dados no localhost? 
       
      Peço desculpas se a pergunta é muito leiga mas, como não encontrei nada específico sobre o assunto, achei que valia a tentativa.
       
      Desde já, agradeço pela atenção.
       
      Caio
       
       
       
       
    • Por Rogerio Pancini
      Boa noite pessoal.
       
      Há duas partes de uma tela que estão prontas, funcionando, mas não corretamente.
      Nessa parte, faço um cálculo.
      Sem a máscara de Real, ótimo.
      Se coloco a máscara 'valor'no input, retorna NaN.
       
      /****** maskMoney ******/ $(function(){ $(".valor").maskMoney({symbol:'R$ ', showSymbol:true, thousands:'.', decimal:',', symbolStay: true}); }) /****** Função percentual ******/ function funcao_percentual(valor_1, destino, percentual) { $(valor_1).on("click", function() { $(destino).val(''); }); function arredondar(valor,casas){ var novo = Math.round(valor*Math.pow(10,casas))/Math.pow(10,casas); return(novo); } $(valor_1).blur(function() { valor = $(this).val(); porcentagem = percentual; // PORCENTAGEM A SER ADICIONADA total = (parseFloat((valor*porcentagem)/100)); $(destino).val(arredondar(total, 2)); }); } /****** Função subtrair ******/ function funcao_subtrair(valor_1, valor_2, inicio, destino) { $(inicio).on("click", function() { $(destino).val(''); }); function arredondar(valor,casas){ var novo = Math.round(valor*Math.pow(10,casas))/Math.pow(10,casas); return(novo); } $(inicio).blur(function() { valor_1_v = $(valor_1).val(); valor_2_v = $(valor_2).val(); total = (parseFloat((valor_1_v-valor_2_v))); $(destino).val(arredondar(total, 2)); }); } /****** Percentual de Provisão - Royalties (franchising) ******/ funcao_percentual("#valor", "#provisao_royalties_franchising", 39.85) /****** Percentual de Provisão Fundo Propaganda ******/ funcao_percentual("#valor", "#provisao_fundo_propaganda", 3) /****** Subtração de Provisão - Royalties ( franchising) ******/ funcao_subtrair("#provisao_royalties_franchising", "#provisao_fundo_propaganda", "#valor", "#provisao_royalties_franchising_2") E o outro BO é quando somo datas. Dá um resultado que não tem nada haver com a planilha que tenho de modelo:
       
      /****** Função calcular a data ******/ function funcao_calcular_data(data_inicial, data_final, dias) { $(data_inicial).blur(function() { $(data_inicial).on("click", function() { $(data_final).val(''); }); var data_ini = $(data_inicial).val(); var date = new Date(data_ini); date.setDate(date.getDate() + dias); var futDate=date.getDate() + "/" + date.getMonth() + "/" + date.getFullYear(); $(data_final).val(futDate); }); } /****** 1º vencimento ******/ funcao_calcular_data("#data_emissao", "#1_venc", 28) /****** 2º vencimento ******/ funcao_calcular_data("#data_emissao", "#2_venc", 42) /****** 3º vencimento ******/ funcao_calcular_data("#data_emissao", "#3_venc", 56) Se alguém puder colaborar com alguma luz.
      Confesso que preciso melhorar ainda mais em Jquery, mas essas funções ficaram boas para a necessidade.
      Faltam apenas esses ajustes.
       
      Obrigado!
×

Informação importante

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