Jump to content

violin101

Members
  • Content count

    261
  • Joined

  • Last visited

Everything posted by violin101

  1. violin101

    PHP - Gerar vencimento parcelas com período variado

    amigo Williams, saudações. tentei assim, sem sucesso function gerarParcelas() { //pega input do form var dataInicial = document.getElementById("dtaentr").value; //SELECT passa com: 28/42/56 var intervalos = document.getElementById("formaPgto").value; //pega input fo form - Soma Total var valorTotal = document.getElementById("vlrtotal").value; var datasParcelas = []; var parcs = explode("/", intervalos); var quantidadeParcelas = count(parcs); // Calcula o valor base das parcelas (arredondando para baixo) var valorParcela = floor(valorTotal / quantidadeParcelas * 100) / 100; // Calcula a última parcela para ajustar a soma total var valorUltimaParcela = valorTotal - (valorParcela * (quantidadeParcelas - 1)); for (i = 0; i < quantidadeParcelas; i++) { if (i == quantidadeParcelas - 1) { valorAtualParcela = valorUltimaParcela; // Última parcela ajustada } else { valorAtualParcela = valorParcela; // Parcelas intermediárias } var dataVencimento = clone dataInicial; dataVencimento->modify("+{parcs[i]} days"); var datasParcelas[] = [ 'data_vencimento' => dataVencimento, 'valor_parcela' => valorAtualParcela ]; } return datasParcelas; } foreach (parcelas as parcela) { html = "<tr>"; html += "<td width='10%' height='10'><input type='hidden' name='datVnc[]' value='"+infoprcs[0]+"'>"+parcela['data_vencimento']->format('Y-m-d')+"</td>"; html += "<td width='32%' height='10'><input type='hidden' name='parcel[]' value='"+infoprcs[2]+"'>"+number_format($parcela['valor_parcela'], 2, ',', '.') +"</td>"; html += "<td width='10%' height='10' style='text-align:center;'>"+ "<button type='button' class='btn btn-danger btn-alterar-parc' style='margin-right: 1%; padding: 1px 2px;' title='Editar'>"+ "</button></td>"; html += "</tr>"; $("#tbparcs tbody").append(html); }
  2. violin101

    PHP - Gerar vencimento parcelas com período variado

    Amigo Williams, saudações. Desculpa postar novamente minha dúvida. O cálculo de Gerar Parcelamento, se eu fosse colocar essa função dentro de um JAVASCRIPT, como deveria fazer e chamar essa função ? Obs.: para esse cálculo o correto é fora do JAVASCRIPT ? tentei colocar no JS e mostrar em uma TABELA, mas não consegui. Grato, Cesar
  3. Caros amigos, saudações. Apenas uma pequena dúvida. Precisei realizar uma alteração de Validação de usuário/empresa. Antes essa linha de código estava assim: <input type="hidden" id="idEmps" name="idEmps" value="<?php echo $emprsa->idEmpresas; ?>" /> Precisei colocar [0] para poder localizar a Empresa Logada. <input type="hidden" id="idEmps" name="idEmps" value="<?php echo $emprsa[0]->idEmpresas; ?>" /> Agora, o sistema dá erro e não grava. minha dúvida: qual a função do [0] e como consigo corrigir ? Grato, Cesar
  4. Caros amigos, saudações. Estou com uma pequena dúvida, referente a PEGAR AUTOMATICAMENTE a HORA e alimentar o campo INPUT. Tenho uma rotina, que estava aparentemente funcionando corretamente, mas agora estou tendo problema. A rotina, pega a HORA atual e informa automaticamente o INPUT, não estou entendendo porque agora não está mais fazendo. Abaixo a rotina. <div class="col-lg-3"> <label for="cotaHrsinicio">Hora da Abertura<span class="required">*</span></label> <div class="controls"> <input type="time" id="cotaHrsinicio" name="cotaHrsinicio" class="form-control" style="width:100%;" value="" /> <!-- NESSE INPUT A ROTINA INFORMA A DATA ATUAL --> </div> </div> function date_time() { var date = new Date(); //var am_pm = "AM"; var hour = date.getHours(); /* if(hour>=12){ am_pm = "PM"; } */ if (hour == 0) { hour = 12; } if(hour<12){ hour = hour - 12; } if(hour>12){ hour + 12; } if(hour<10){ hour = "0"+hour; } var minute = date.getMinutes(); if (minute<10){ minute = "0"+minute; } var sec = date.getSeconds(); if(sec<10){ sec = "0"+sec; } /* *Formato da Hora (h:m:s) * Passar para a Variável: Hora Atual */ var cotaHrsinicio = document.getElementById("cotaHrsinicio").value = hour+":"+minute; } Grato, Cesar
  5. violin101

    PHP - Cadastro de Faturamento

    Caros amigos, saudações. Estou com uma dúvida de como devo fazer. Preciso criar uma Rotina para Cadastrar Faturamento, por exemplo: 1) 28/42/56 dias -> de 28 p/ 42 a dif. é de 14 dias... 2) 30/60/90 dias -> de 30 p/ 60 a dif. é de 30 dias... 3) 0/15/30/45 dias -> de 0 p/ 15 a dif. é de 15 dias... Como devo fazer para cadastrar os prazo de vencimento, onde o sistema possa contar as diferenças entre os dias ? Grato, Cesar
  6. violin101

    PHP - Dúvida referente informação de POST

    Amigo Albano, consegui resolver. exclui a Tabela de Relacionamento e inclui novamente.
  7. violin101

    PHP - Dúvida referente informação de POST

    Amigo, Albano, saudações. Tenho um FORM onde o usuário seleciona o Produto para ser Relacionado com outros produtos. O form recebe os DADOS corretamente vindo do MySql, infelizmente quando o usuário Relaciona, os valores passam NULL via ajax, para serem gravados, isso não estou entendo porque está acontece, se antes não ocorria o erro. Abaixo está o código que estou usando. <div class="tab-pane fade" id="relacionamento" role="tabpanel" aria-labelledby="relacionamento-tab"> <div class="txtProd"> <?php echo $result->cod_interno; ?> - <?php echo $result->descricao; ?> </div> <div class="card-body"> <form id="frmRelac" action="javascript:;" method="post" accept-charset="utf-8" enctype="multipart/form-data" > <div class="row"> <div class="col-md-8"> <label for="idProdutos">Produto:</label> <div class="input-group"> <input type="hidden" name="idProdutos" id="idProdutos" value="<?= $result->idProdutos ?>"> <input type="text" class="form-control" id="descritem" name="descritem" style="font-size:15px; font-weight:bold; background:#ffffff;" placeholder="Pesquisar Produto para ser Relacionado" disabled> <span class="input-group-btn"> <button class="btn btn-warning" type="button" id="btnProd" name="btnProd" data-toggle="modal" data-target="#modal_prod"> <span class="fa fa-search"></span> Pesquisar </button> </span> </div> </div> <br/> <div class="col-md-2" style="margin-top:32px;"> <input type="hidden" id="idPrds" name="idPrds" value="<?php echo $result->idProdutos; ?>"/> <input type="hidden" id="idEmps" name="idEmps" value="<?php echo $emprsa[0]->idEmpresas; ?>"/> <button type="submit" id="btn-adic" class="btn btn-success" style="width:100%;"> Relacionar</button> </div> <div class="col-md-2" style="margin-top:32px;"> <button id="btn-limp" class="btn btn-danger" style="width:100%;"> <i class="fa fa-paint-brush icon-white"></i> Limpar </button> </div> <div class="clearfix"></div> <br/> </div> </form> <div class="clearfix"></div> <div class="row"> <div class="col-md-12" id="divRelac" style="padding: 1%; margin-left:0px;"> <table class="table" id="tab_prods"> <thead> <tr style="background-color:#BDDCDC;"> <th style="text-align:center;">CÓDIGO</th> <th style="text-align:center;">DESCRIÇÃO DO PRODUTO</th> <th style="text-align:center;">CATEGORIA</th> <th style="text-align:center;">IMAGEM</th> <th style="text-align:center;">AÇÃO</th> </tr> </thead> <tbody> <?php foreach ($relacto as $rlc) { echo '<tr>'; echo '<td width="20" height="10" style="text-align:center;">'.$rlc->cod_interno.'</td>'; echo '<td width="250" height="10" style="text-align:left;">'.$rlc->descricao.'</td>'; echo '<td width="20" height="10" style="text-align:center;">'.$rlc->categoria.'</td>'; echo '<td width="20" height="10" style="text-align:center;">' ?> <?php if ($rlc->imagemCapa != null) { ?> <img src="<?php echo $rlc->imagemCapa; ?>" width="40px;" height="30px" alt=""> <?php } else { ?> <img src="<?php echo base_url() ?>assets/img/semImg.jpg" width="40px;" height="30px" alt=""> <?php } ?> <?php '</td>'; echo '<td width="20" height="10" style="text-align:center;"><span idExcrlc="'.$rlc->idrelacionar.'" title="Excluir Produto Relacionado" class="btn btn-danger" style="margin-right: 1%; padding: 2px 5px;"><i class="fa fa-trash icon-white"></i></span></td>'; echo '</tr>'; } ?> </tbody> </table> &nbsp; </div> </div> </div> </div> O código em JavaScript, para gravar no MySql. //Adicionar Relacionamento $("#frmRelac").validate({ submitHandler: function (form) { var dados = $(form).serialize(); $("#divRelac").html("<div class='progress'><div class='progress-bar progress-bar-primary progress-bar-striped' role='progressbar' aria-valuenow='40' aria-valuemin='0' aria-valuemax='100' style='width: 100%''></div></div>"); $.ajax({ type: "POST", url: "<?php echo base_url();?>admin/produtos/adicionarRelac", data: dados, dataType: 'json', success: function (data) { if (data.result == true) { $("#divRelac").load("<?php echo current_url();?> #divRelac"); $("#descritem").val(''); //Desabilita os Buttons document.getElementById("btn-adic").disabled = true; document.getElementById("btn-limp").disabled = true; } else { alert('Ocorreu um erro ao tentar adicionar um produto.'); } } }); return false; } }); O result, vem assim do Models function getById($id) { $this->db->where('idProdutos', $id); $this->db->limit(1); return $this->db->get('produtos')->row(); } O amigo, pode me dar uma ajuda. Grato, Cesar
  8. violin101

    PHP - Login com redirecionamento

    Caros amigos, saudações. Por favor, antes de recorrer a ajuda dos amigos, tentei de vários formas mas não consegui sucesso. Preciso criar uma Rotina com Acesso de Login parecido com o do Site Google. Tenho uma rotina que faz as Verificação do Usuário e Senha correto, mas após a verificação do Usuário/Senha, gostaria de ser redirecionado para uma Rotina onde possa Selecionar as Empresas vinculada/permissão para cada usuário, ou seja: o usuário 1 tem permissão para: Empresa 1 | Empresa 2 o usuário 2 tem permissão para: Empresa 2 Abaixo, posto o código que faço a verificação de Usuário/Senha. <!-- Código da VIEW --> <form class="form-vertical" id="formLogin" method="post" action="<?php echo base_url()?>index.php/admin/controle/verificarLogin"> <?php if ($this->session->flashdata('error') != null) {?> <div class="alert alert-danger"> <button type="button" class="close" data-dismiss="alert">×</button> <?php echo $this->session->flashdata('error');?> </div> <?php } ?> <div class="form-group"> <input type="text" id="email" name="email" class="form-control" placeholder="Email"> </div> <div class="form-group"> <input type="password" id="senha" name="senha" class="form-control" placeholder="Password"> </div> <div class="row"> <div class="col-6"> <a href="<?php echo base_url() ?>" class="btn btn-danger btn-block btn-flat"><i class="fa fa-undo"></i> Voltar ao Site</a> </div> <div class="col-6"> <button type="submit" class="btn btn-primary btn-block btn-flat pull-right">Acessar</button> </div> <!-- /.col --> </div> <div class="login-recup"> Esqueceu sua senha: <a href="<?php echo base_url()?>admin/controle/recupera"> clique aqui</a>. </div> </form> //Código no Controller public function index() { if ((!session_id()) || (!$this->session->userdata('logado'))) { redirect('admin/controle/login'); } $this->load->view('estilo/header', $this->data); $this->load->view('admin/tema/topo'); $this->load->view('admin/tema/conteudo'); $this->load->view('estilo/footer'); } public function login() { $this->load->view('admin/controle/login'); } public function verificarLogin() { header('Access-Control-Allow-Origin: '.base_url()); header('Access-Control-Allow-Methods: POST, GET, OPTIONS'); header('Access-Control-Max-Age: 1000'); header('Access-Control-Allow-Headers: Content-Type'); $this->load->library('form_validation'); $this->form_validation->set_rules('email', 'E-mail', 'valid_email|required|trim'); $this->form_validation->set_rules('senha', 'Senha', 'required|trim'); if ($this->form_validation->run() == false) { $json = array('result' => false, 'message' => validation_errors()); echo json_encode($json); } else { $email = $this->input->post('email'); $password = $this->input->post('senha'); $this->load->model('Admin/Controle_model'); $user = $this->Controle_model->check_credentials($email); if ($user) { if (password_verify($password, $user->senha)) { $session_data = array('nome' => $user->nome_user, 'email' => $user->email, 'id' => $user->idUsuarios, 'permissao' => $user->permissoes_idPermissao, 'logado' => true); $this->session->set_userdata($session_data); $json = array('result' => true); echo json_encode($json); //$this->envia(); } else { $json = array('result' => false, 'message' => 'Os dados de acesso estão incorretos.'); echo json_encode($json); } } else { $json = array('result' => false, 'message' => 'Usuário não encontrado, verifique se informou os dados corretamente.'); echo json_encode($json); } } die(); } Como faço o redirecionamento para selecionar a Empresa Vinculada, antes de acessar o Sistema ? Grato, Cesar
  9. violin101

    PHP - Login com redirecionamento

    Amigo, Albano. Saudações. Consegui resolver.
  10. violin101

    PHP - Login com redirecionamento

    Amigo, Albano o meu código do JAVASCRIPT está assim, para verificar login. como faço para redirecionar a verificação, conforme informado por você ? <script type="text/javascript"> $(document).ready(function(){ $('#email').focus(); $("#formLogin").validate({ rules :{ email: { required: true, email: true}, senha: { required: true} }, messages:{ email: { required: '<span style="color:#ff0000;">Campo Requerido</span>', email: '<span style="color:#ff0000;">Insira um e-mail válido</span>'}, senha: {required: '<span style="color:#ff0000;">Campo Requerido</span>'} }, submitHandler: function( form ){ var dados = $( form ).serialize(); $('#btn-acessar').addClass('disabled'); $('#progress-acessar').removeClass('hide'); $.ajax({ type: "POST", url: "<?php echo base_url();?>index.php/admin/controle/verificarLogin?ajax=true", data: dados, dataType: 'json', success: function(data) { if(data.result == true){ //Logou Corretamente é redicionado para a página de trabalho window.location.href = "<?php echo base_url();?>admin/controle"; } else { $('#btn-acessar').removeClass('disabled'); $('#progress-acessar').addClass('hide'); $('#call-modal').trigger('click'); } } }); return false; }, errorClass: "help-inline", errorElement: "span", highlight:function(element, errorClass, validClass) { $(element).parents('.form-group').addClass('error'); }, unhighlight: function(element, errorClass, validClass) { $(element).parents('.form-group').removeClass('error'); $(element).parents('.form-group').addClass('success'); } }); }); </SCRIPT>
  11. violin101

    PHP - Login com redirecionamento

    Saudações, amigo Albano. Estive afastado da área de informática por um tempo, por motivo de força maior. É um prazer poder falar com o amigo novamente.
  12. violin101

    PHP - Gerar vencimento parcelas com período variado

    Obrigado, Williams
  13. violin101

    PHP - Gerar vencimento parcelas com período variado

    Amigo Williams, saudações Baseado nas suas instruções, fiz escrevi uma Função onde aproxima a última parcela, ou seja: R$ 1000,00 / 3 1 - 333,33 2 - 333,33 3 - 333,34 Como faço para implementar a última parcela para arredondar ? o código fico assim, talvez, tenho colocado no local errado. <?php // Exemplo de uso $dataInicial = new DateTime(); $intervalos = [0,3,6]; $valorTotal = 1000.00; $qtd_parc = count($intervalos); // Converter o valor para o formato Real separado pela virgula echo "Valor da compra: R$ " . number_format($valorTotal, 2, ',', '.') . "<br><br>"; // Apenas Exibi a quantidade de Intervalos echo "Quantidade de intervalos: $qtd_parc <br><br>"; function gerarParcelas($dataInicial, $intervalos, $valorTotal) { $datasParcelas = []; $quantidadeParcelas = count($intervalos); $valorParcela = $valorTotal / $quantidadeParcelas; $repete = 1; $somar_valor_parcela = 0; while ($repete <= $quantidadeParcelas) { if ($repete == $quantidadeParcelas) { $valor_ultima_parcela = $valorTotal - $somar_valor_parcela; $somar_valor_parcela += number_format($valor_ultima_parcela, 2, '.', ''); $valor_final_parcelas = number_format($valor_ultima_parcela, 2, '.', ''); echo "Valor Parc. R$ " . number_format($valor_final_parcelas, 2, ',', '.') . "<br>"; } else { $somar_valor_parcela += number_format($valorParcela, 2, '.', ''); $valor_final_parcela = number_format($valorParcela, 2, '.', ''); echo "Valor Parc. R$ " . number_format($valor_final_parcelas, 2, ',', '.') . "<br>"; } $repete++; } /* Até aqui fica assim. Valor Parc. R$ 333,33 Valor Parc. R$ 333,33 Valor Parc. R$ 333,34 <== arredondou para cima */ foreach ($intervalos as $dias) { $dataVencimento = clone $dataInicial; $dataVencimento->modify("+{$dias} days"); $datasParcelas[] = [ 'data_vencimento' => $dataVencimento, 'valor_parcela' => $valorParcela ]; } return $datasParcelas; } $parcelas = gerarParcelas($dataInicial, $intervalos, $valorTotal); echo "<br>"; foreach ($parcelas as $parcela) { echo $parcela['data_vencimento']->format('Y-m-d') . " - Valor..: R$ " . number_format($parcela['valor_parcela'], 2, ',', '.') . "<br>"; } /* Aqui mostra assim 2024-07-07 - Valor..: R$ 333,33 2024-07-10 - Valor..: R$ 333,33 2024-07-13 - Valor..: R$ 333,33 <== como arredondar esta última parcela */ ?> Grato, Cesar
  14. violin101

    PHP - Gerar vencimento parcelas com período variado

    Amigo, Williams fiz assim e deu certo. //data atual $dataInicial = new DateTime(); //Intervalos de Dias para Vencer $intervalos = [15,30,45]; //Quantidade de Intervalos $qtd_parc = count($intervalos);
  15. violin101

    PHP - Gerar vencimento parcelas com período variado

    Caro amigo, Williams Duarte Muito obrigado por sua explicação e orientação. Apenas uma dúvida: se precisar utilizar os INTERVALOS para fazer a divisão do VALOR parcelado, como ficaria ? exemplo: R$ 1.000,00 intervalos: 28/42/56 dias. Ou nesse caso, o correto seria informa a quantidade de parcelas e depois os intervalos para as datas.
  16. violin101

    PHP - Cadastro de Faturamento

    Caros amigos, saudações. Estou tentando fazer uma Rotina em PHP onde eu possa gerar datas de Vencimentos, o meu problema é que não consigo entender como faço para contar DIFERENÇA entre as data de vencimentos. Exemplo: qtde de dias para vencer: 28/42/56. a 1ª parcela conta 28 dias da Data Atual. a 2ª parcela conta 14 dias da A PARTIR da 1ª. parcela. a 3ª parcela conta 14 dias da A PARTIR da 2ª. parcela. ficaria assim: Data Atual: 03/07/2024 1 vcto p/ 31/07/2024 2 vcto p/ 11/09/2024 3 vcto p/ 25/09/2024 Abaixo fiz uma Rotina Simples, para fazer os PARCELMENTO, VALORES e VECIMENTOS. <?php // Definir um fuso horario padrao date_default_timezone_set('America/Sao_Paulo'); ?> <!DOCTYPE html> <html lang="pt-br"> <head> <meta charset="UTF-8"> <title>Calcula Vencimento</title> </head> <body> <?php // Valor da compra $valor_total = 700; // Quantidade de parcelas $quantidade_parc = 3; //Intervalo de Dias para Vencer $intervalo=28; // Converter o valor para o formato Real separado pela virgula echo "Valor da compra: " . number_format($valor_total, 2, ',', '.') . "<br><br>"; // Imprimir a quantidade de parcelas echo "Quantidade de parcelas: $quantidade_parc <br><br>"; // Imprimir a quantidade de parcelas echo "Intervalo de Dias p/ Vencer: $intervalo <br><br>"; // Calcula o valor de cada parcela $valor_parc = $valor_total / $quantidade_parc; // Variável do Controle do WHILE $controle = 1; // Realiza a Sotal das parcelas $soma_valor_parc = 0; // Data atual $data_atual = new DateTime(); // Laço de repetição while ($controle <= $quantidade_parc) { // Somar Intervalo de Tempo na Data $data_atual->add(new DateInterval('P' . $intervalo . 'D')); // Acessa o IF quando é última parcela para corrigir o valor da compra if ($controle == $quantidade_parc) { // Utilizar a soma das parcelas e subtrair do valor total da // para obter o valor a última parcela e corrigir a diferença $valor_ultima_parc = $valor_total - $soma_valor_parc; // Converter o valor da parcela para o formato Real separado pela virgula echo "Valor da parcela " . number_format($valor_ultima_parc, 2, ',', '.') . "<br>"; // Somar o valor das parcelas $soma_valor_parc += number_format($valor_ultima_parc, 2, '.', ''); } else { // Converter o valor da parcela para o formato Real separado pela virgula echo "Valor da parcela " . number_format($valor_parc, 2, ',', '.') . "<br>"; // Somar o valor das parcelas $soma_valor_parc += number_format($valor_parc, 2, '.', ''); } // Converter a data echo "Data de Vencimento: " . $data_atual->format('d/m/Y') . "<br><br>"; // Incrementar a variável após imprimir a parcela $controle++; } // Imprimir o valor total da soma das parcelas e converter para o formato Real separado pela virgula echo "<br>Valor total Parcelado: " . number_format($soma_valor_parc, 2, ',', '.') . "<br>"; ?> </body> </html> Grato, Cesar
  17. Caros amigos, saudações... Desculpa recorrer ao grupo mas estou com uma dúvida e não sei como resolver. Tenho uma Rotina onde consigo enviar e-mail usando phpmailer. O problema é que consigo enviar individualmente. Preciso criar uma Rotina onde Busco no MySql todos os usuário que comprou um determinado produto (por exemplo: Notebook). no MySql foi encontrado 10 usuários ou pode ser mais ou menos usuário. Como faço para enviar e-mail a todos os usuários com uma mensagem de agradecimento ? Grato, Cesar
  18. Caros amigos, saudações... Estou com uma pequena dúvida para apresentar ao usuário uma Mensagem de ERRO após consulta de CEP. Quando o usuário digita um CEP válido o sistema demonstra em uma TABELA os valores respectivos de FRETE de acordo com os CEP. -----[ até aqui tudo bem ]----- Meu problema é quando o usuário digita um CEP não válido. Nesta parte gostaria de Limpar a Tabela e mostrar uma TBODY de mensagem. <div class="col-md-12" id="divCity" style="display:none; margin-top:5px; margin-left:-23px;"> <div class="col-md-12"> <div class="input-group"> <label for="cidadeUf" class="lblCitys">Cidade:</label> <input type="text" name="cidadeUf" id="cidadeUf" class="form-control" style="margin-top:-17px; background:#ffffff; border: 0 solid #ffffff;" disabled /> </div> </div> <br/> <div class="col-md-12" style="margin-top:-10px; margin-left:10px;"> <div class="table-responsive"> <table class="table tableList" id="tborden"> <thead> <tr> <th colspan="3" style="text-align:left;">Prazo de Entrega para:</th> </tr> </thead> <tbody> <tr class="message"> <td colspan="3" class="text-center">O CEP informado não foi encontrado.</td> </tr> </tbody> </table> </div> </div> <div class="col-md-12" style="margin-top:-10px; margin-left:10px;"> <span class="infprz"> <i class='fa fa-caret-right'></i>&nbsp; Os prazos de Entrega e para Retirar na Loja, iniciam-se no 1º dia útil após a data da confirmação do pagamento. </span> </div> </div> O JavaScript está assim: //Função para Buscar Cidade e Estado Via CEPs. $(function(){ $("#btn_consulta").click(function(){ var cep = $('#cepOrg').val(); if (cep == '') { alert('Informe o CEP antes de continuar'); document.getElementById("divCity").style.display = "none"; $('#cepOrg').focus(); return false; } //Muda o Status do Button $('#btn_consulta').html('Aguarde...'); $.ajax({ url: "<?php echo base_url();?>site/produtos/consulta", type: "POST", dataType:"json", data:{cep: cep}, success:function(data){ if (data.hasOwnProperty('erro')) { /* * Caso o usuário digita um CEP não válido o sistema apresenta um ALERT. * nessa parte gostaria de mostrar a LINHA criada na Tabela anteriormente */ alert('CEP não encontrado'); document.getElementById("divCity").style.display = "none"; $('#cepOrg').val(''); $('#cidadeUf').val(''); $('#cepOrg').focus(); $('#btn_consulta').html('Consultar'); return false; } else { //Exibe os Dados Recebidos $('#cidadeUf').val(data.localidade+'/'+data.uf); //Chama a Função para Exibir a DIV oculta statusDIV(); //Chama a Função Monta Tabela, passando a Variável de Busca montaTable(cep); //Muda o Status do Button $('#btn_consulta').html('Consultar'); } } });//Fim - ajax CEP });//Fim - function button });//Fim - 1º.function function montaTable(cep){ $.ajax({ url: "<?php echo base_url();?>site/produtos/getByCep", type: "POST", dataType:"json", data:{ cep: cep}, success:function(data){ //Remove Mensagem da Tabela $("#tborden tbody tr.message").remove(); var lin = ""; for (var i = 0; i < data.length; i++) { lin += "<tr>"; lin += "<td width='30%' style='text-align:left; font-size:16px;'>" + data[i].cepRegiao + "</td>"; lin += "<td width='21%' style='text-align:left; font-size:16px;'>" + data[i].frtEntreg + "</td>"; if (data[i].vlrFrete != null && data[i].vlrFrete != 0) { lin += "<td width='20%' style='text-align:right; font-size:16px; font-weight:bold; color:#19198F;'>" + mskVlr(data[i].vlrFrete) + "</td>"; } else { lin += "<td width='20%' style='text-align:right; font-size:16px; font-weight:bold; color:#137A13;'>Frete Grátis</td>"; } lin += "</tr>"; } //Atualiza a Tabela $("#tborden tbody").empty(); //Adiciona os Itens a Tabela $("#tborden tbody").append(lin); } });//Fim - ajax Valor Frete } Como consigo executar essa mensagem ? Grato, Cesar
  19. Olá amigos, saudações... Feliz 2022 para todos nós. Amigos estou com um problema de Slider, o sistema começa o Carousel de depois de algum tempo o Slider para, mesmo colocando com LOOP infinito. Alguém por favor, poderia me ajudar a entender onde está o problema e como consigo resolver ? O JS está assim: $(".slider-active").owlCarousel({ loop: true, margin: 0, nav: true, autoplay: true, infinite: true, items: 1, autoplayTimeout: 10000, navText: ["<i class='fa fa-caret-left'></i>", "<i class='fa fa-caret-right'></i>"], dots: true, autoHeight: true, lazyLoad: true }); Grato, Cesar
  20. violin101

    Filtro de busca

    Caio Vargas, saudações... Select Box Dinamico usando Ajax <?php /* * * Codeigniter Dynamic Dependent Select Box using Ajax * /* -- -- Database: `country_state_city` -- -- -------------------------------------------------------- -- -- Table structure for table `country` -- CREATE TABLE `country` ( `country_id` int(11) NOT NULL, `country_name` varchar(250) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `country` -- INSERT INTO `country` (`country_id`, `country_name`) VALUES (1, 'USA'), (2, 'Canada'), (3, 'Australia'), (4, 'India'); -- -- Indexes for dumped tables -- -- -- Indexes for table `country` -- ALTER TABLE `country` ADD PRIMARY KEY (`country_id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `country` -- ALTER TABLE `country` MODIFY `country_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; -- -- Database: `country_state_city` -- -- -------------------------------------------------------- -- -- Table structure for table `state` -- CREATE TABLE `state` ( `state_id` int(11) NOT NULL, `country_id` int(11) NOT NULL, `state_name` varchar(250) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `state` -- INSERT INTO `state` (`state_id`, `country_id`, `state_name`) VALUES (1, 1, 'New York'), (2, 1, 'Alabama'), (3, 1, 'California'), (4, 2, 'Ontario'), (5, 2, 'British Columbia'), (6, 3, 'New South Wales'), (7, 3, 'Queensland'), (8, 4, 'Karnataka'), (9, 4, 'Telangana'); -- -- Indexes for dumped tables -- -- -- Indexes for table `state` -- ALTER TABLE `state` ADD PRIMARY KEY (`state_id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `state` -- ALTER TABLE `state` MODIFY `state_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10; -- -- Database: `country_state_city` -- -- -------------------------------------------------------- -- -- Table structure for table `city` -- CREATE TABLE `city` ( `city_id` int(11) NOT NULL, `state_id` int(11) NOT NULL, `city_name` varchar(250) NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Dumping data for table `city` -- INSERT INTO `city` (`city_id`, `state_id`, `city_name`) VALUES (1, 1, 'New York city'), (2, 1, 'Buffalo'), (3, 1, 'Albany'), (4, 2, 'Birmingham'), (5, 2, 'Montgomery'), (6, 2, 'Huntsville'), (7, 3, 'Los Angeles'), (8, 3, 'San Francisco'), (9, 3, 'San Diego'), (10, 4, 'Toronto'), (11, 4, 'Ottawa'), (12, 5, 'Vancouver'), (13, 5, 'Victoria'), (14, 6, 'Sydney'), (15, 6, 'Newcastle'), (16, 7, 'City of Brisbane'), (17, 7, 'Gold Coast'), (18, 8, 'Bangalore'), (19, 8, 'Mangalore'), (20, 9, 'Hydrabad'), (21, 9, 'Warangal'); -- -- Indexes for dumped tables -- -- -- Indexes for table `city` -- ALTER TABLE `city` ADD PRIMARY KEY (`city_id`); -- -- AUTO_INCREMENT for dumped tables -- -- -- AUTO_INCREMENT for table `city` -- ALTER TABLE `city` MODIFY `city_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=22; */ ?> //-------------------------------------------------------------------------- /* * Dynamic_dependent.php(Controller) */ <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Dynamic_dependent extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('dynamic_dependent_model'); } function index() { $data['country'] = $this->dynamic_dependent_model->fetch_country(); $this->load->view('dynamic_dependent', $data); } function fetch_state() { if($this->input->post('country_id')) { echo $this->dynamic_dependent_model->fetch_state($this->input->post('country_id')); } } function fetch_city() { if($this->input->post('state_id')) { echo $this->dynamic_dependent_model->fetch_city($this->input->post('state_id')); } } } ?> //-------------------------------------------------------------------------- /* * Dynamic_dependent_model.php(Model) */ <?php class Dynamic_dependent_model extends CI_Model { function fetch_country() { $this->db->order_by("country_name", "ASC"); $query = $this->db->get("country"); return $query->result(); } function fetch_state($country_id) { $this->db->where('country_id', $country_id); $this->db->order_by('state_name', 'ASC'); $query = $this->db->get('state'); $output = '<option value="">Select State</option>'; foreach($query->result() as $row) { $output .= '<option value="'.$row->state_id.'">'.$row->state_name.'</option>'; } return $output; } function fetch_city($state_id) { $this->db->where('state_id', $state_id); $this->db->order_by('city_name', 'ASC'); $query = $this->db->get('city'); $output = '<option value="">Select City</option>'; foreach($query->result() as $row) { $output .= '<option value="'.$row->city_id.'">'.$row->city_name.'</option>'; } return $output; } } ?> //-------------------------------------------------------------------------- /* * dynamic_dependent.php(View) */ <html> <head> <title>Codeigniter Dynamic Dependent Select Box using Ajax</title> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" /> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script> <style> .box { width:100%; max-width: 650px; margin:0 auto; } </style> </head> <body> <div class="container box"> <br /> <br /> <h3 align="center">Codeigniter Dynamic Dependent Select Box using Ajax</h3> <br /> <div class="form-group"> <select name="country" id="country" class="form-control input-lg"> <option value="">Select Country</option> <?php foreach($country as $row) { echo '<option value="'.$row->country_id.'">'.$row->country_name.'</option>'; } ?> </select> </div> <br /> <div class="form-group"> <select name="state" id="state" class="form-control input-lg"> <option value="">Select State</option> </select> </div> <br /> <div class="form-group"> <select name="city" id="city" class="form-control input-lg"> <option value="">Select City</option> </select> </div> </div> </body> </html> <script> $(document).ready(function(){ $('#country').change(function(){ var country_id = $('#country').val(); if(country_id != ''){ $.ajax({ url:"<?php echo base_url(); ?>dynamic_dependent/fetch_state", method:"POST", data:{country_id:country_id}, success:function(data){ $('#state').html(data); $('#city').html('<option value="">Select City</option>'); } }); } else { $('#state').html('<option value="">Select State</option>'); $('#city').html('<option value="">Select City</option>'); } }); $('#state').change(function(){ var state_id = $('#state').val(); if(state_id != ''){ $.ajax({ url:"<?php echo base_url(); ?>dynamic_dependent/fetch_city", method:"POST", data:{state_id:state_id}, success:function(data){ $('#city').html(data); } }); } else { $('#city').html('<option value="">Select City</option>'); } }); }); </script> Espero ter ajudado. Atenciosamente, Cesar
  21. violin101

    dizer se tem ou não dados repetidos no array

    Biel, saudações... Embora não colocou a sua rotina para podermos auxiliar em sua dúvida. Vou tentar te ajudar. Para impressão ou qualquer outra rotina que queira usar para não repetir dados, você poder usar a função do MySql: Group By Essa função irá agrupar todos os Campos na sua Base de Dados como por exemplo: id = 1 --- cod: 2 id = 2 --- cod: 1 id = 3 --- cod: 3 id = 4 --- cod: 2 id = 5 --- cod: 1 Explicando o sql: SELECT coluna_nome(s) FROM tabela_nome WHERE condição GROUP BY coluna_nome(s) ORDER BY coluna_nome(s) O Seu SQL ficaria assim: SELECT * FROM produto GROUP BY cod_categoria //aqui vai agrupar todos os campos iguais ORDER BY codprod ASC; //ordem de impressão Espero ter ajudado. Cesar
  22. violin101

    meu pagina de atualizar nao funciona

    Olá Thiago Segue um exemplo simples, para entender. Espero ter ajudado. <!DOCTYPE html> <html> <head> <?php include"config.php"; ?> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>PDO Update</title> <link rel="stylesheet" href=""> </head> <body> <?php if (isset($_POST['atualizar'])) { $campo1 = strip_tags(trim($_POST['campo1'])); $campo2 = strip_tags(trim($_POST['campo2'])); $id = strip_tags(trim($_POST['id'])); $sql_atualiza = 'UPDATE teste SET campo1 = :campo1, campo2 = :campo2 WHERE id = :id'; try{ $query_update = $conecta->prepare($sql_atualiza); $query_update->bindValue(':campo1',$campo1,PDO::PARAM_STR); $query_update->bindValue(':campo2',$campo2,PDO::PARAM_STR); $query_update->bindValue(':id',$id,PDO::PARAM_STR); $query_update->execute(); echo 'Atualizado com sucesso!'; } catch (PDOexception $error_update){ echo 'Erro em atualizar'.$error_update->getMessage(); } } ?> <?php $sql_select = 'SELECT * FROM teste '; try{ $query_select = $conecta->prepare($sql_select); $query_select->execute(); $resultado_query = $query_select->fetchAll(PDO::FETCH_ASSOC); $count = $query_select->rowCount(PDO::FETCH_ASSOC); echo 'Econtramos '.$count. ' Resultado(s)<br/>'; } catch (PDOException $error_select){ echo 'Erro ao selecionar !'.$error_select->getMessage(); } foreach ($resultado_query as $res) { $id = $res['id']; $campo1 = $res['campo1']; $campo2 = $res['campo2']; ?> <!--Função multipart/form-data -> o formulário está sendo executado dentro da própria página --> <form name="atualizar" action="" method="post" enctype="multipart/form-data"> Campo1: <input type="text" name="campo1" value="<?php echo $campo1; ?>" /><br/> Campo2: <input type="text" name="campo2" value="<?php echo $campo2; ?>"/><br/> <input type="hidden" name="id" value="<?php echo $id; ?>"/><br/> <input type="submit" name="atualizar" value="Atualizar" /> </form> <br/><br/> <?php } ?> </body> </html> Saudações... Cesar
  23. Caros amigos, saudações... Desculpa em recorrer a ajuda dos amigos, gostaria de uma ajuda e orientação. Estou escrevendo uma Rotina para o Sistema Gerar e Imprimir QrCode, até aqui tudo bem. A minha dúvida é o seguinte: ---[ em algumas pesquisas verifiquei que alguns QrCode tem a opção de Colocar um LOGO no centro. Como consigo fazer essa inclusão do LOGO no QrCode ? Se colocar o Logo no QrCode, prejudica a sua leitura ? O meu código está assim: <?php /* *Função para Gerar o QrCode do ID do Produto */ function qrcode($id = null){ //Código do Cliente Logado $codCli = $this->session->userdata('idCli'); //SQL para Pesquisar por ID do Produto $query = $this->db->query("SELECT an.idProdutos, an.cod_interno, an.descricao, an.id_clientes, cc.idClientes FROM produtos an INNER JOIN clientes cc ON cc.idClientes = an.id_clientes WHERE an.idProdutos = '$id' AND an.id_clientes = '$codCli' "); //Passa as Informações do Produto foreach ($query->result() as $row){ $codId = $row->idProdutos; $codInt = $row->cod_interno; $descr = $row->descricao; } //Variável[dq] Criada para Passar as Informações para o QrCode $dq = $codId."\n"; $dq .= $codInt."\n"; $dq .= $descr."\n"; //Gerar o QrCode qrcode::png( $dq, $outlife = false, $level = QR_ECLEVEL_L, $size = 6, $margin = 1 ); } ?> Grato, Cesar
  24. Caros amigos saudações... Primeiramente peço desculpa se postei minha dúvida na opção errada. Estou escrevendo uma Rotina para Impressão de Relatório usando mPDF, até aqui tudo bem. O relatório tem um: Título - Tabela - Dados. Minha dúvida: --[ como faço para REPETIR em todo SALTO de Página o Título ou Cabeçalho da Tabela, por exemplo: Título.................: Relatório de Estoque Tabela Campos: Código | Descrição | ESP | Qtde | Valor Grato, Cesar
  25. Caros Amigos, saudações... Desculpa a recorrer ao auxílio dos amigos, mas estou com um pequeno problema que não estou conseguindo entender. A página inicial do meu Sistema tem um CAROUSEL com um SLIDER que deveria iniciar junto com a página. INFELIZMENTE algumas vezes não inicia e para EXECUTAR o o Slider deve pressionar F5. Algumas vezes quando o Slider inicia depois de um período para o LOOP, não entendo isso. Abaixo o código do SLIDER. /*----------------------------------------*/ /* 01. Main Slider Ativação e Velocidade do Slide /* /* Como consigo resolver esse problema para o Slider INICIAR com um LOOP infinito /* sem ter que ficar atualizando a página ? /* /*----------------------------------------*/ $(".slider_active").owlCarousel({ loop: true, margin: 0, nav: true, autoplay: true, infinite: true, items: 1, autoplayTimeout: 10000, navText: ["<i class='fa fa-caret-left'></i>", "<i class='fa fa-caret-right'></i>"], dots: true, autoHeight: true, lazyLoad: true }); Grato, Cesar
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.