Ir para conteúdo

Arquivado

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

kaiquemix

Carregar do Banco de dados só quando estiver 100% carregado

Recommended Posts

Na parte de Portfolio, ao aperta em carregar +, vocês podem ver que carrega primeiro o bloco e depois as imagens com um delay de 1 segundo.
VEJA NO SITE: somospixel.com/test
Eu quero que só carregasse quando as imagens ja estiverem sido carregadas.
Função que pega os dados:

        function pegaDados()
        {
            var idUltimo = $("#buttonIdUltimoItem").val();
            jQuery.ajax
                ({
        
                    url: "pegaPortifolio.php?id="+idUltimo,
                    dataType: "json", //Tipo de Retorno
                    success:
                    function(data) {
                        console.log(data);
                        var pt1 = "";
                        var i = 1;
                        var ultimo_id = 0;
        
                          var size = 0, key;
                          for (key in data) {
                                if (data.hasOwnProperty(key)) size++; 
        
                            }
        
                         for(i = 0; i < size; i++){
        
                             pt1 +='<div class="element-item filter filtros todos  '+data[i].menu+'" data-category="transition"><div style="padding:2.5px;"><div style="border: 1px solid #AAAAAA;"><a href="#portfolioModal54" onclick="portfolioModal('+data[i].id+')" class="portfolio-link" data-toggle="modal"><img src="images/port/mini/'+data[i].imageM+'" alt="project 2"><div class="fundo-port"><h1>'+data[i].tipo+'</h1><h2>'+data[i].nome+'</h2></div></a></div></div></div>';
                             
                            
                             ultimo_id = data[i].id;
                             
                             $("#buttonIdUltimoItem").val(ultimo_id);
                             
                          }
        
                          monta_html(pt1);               
        
                    }
                });
             filtrar($('#buttonIdUltimoItem').attr('class'));
        
        }
    
    function monta_html(dados){
    
      $(".grid").append(dados); //joga o valor para um elemento html
    }
GRID onde está os blocos ja carregados:
     <div class="wrap">
    <div class="grid">
          <?php
    $servidor = 'localhost';
    $banco      = '###';
    $usuario  = '###';
    $senha    = '##';
    $link     = @mysql_connect($servidor, $usuario, $senha);
    $db          = mysql_select_db($banco,$link);
    $idUltimoItem = 0;
    if(!$link)
    {
        echo "erro ao conectar ao banco de dados!";exit();
    }
    
    $sql = "SELECT * FROM portfolio ORDER BY id DESC limit 6";
    $query = mysql_query($sql);
    
    while($sql = mysql_fetch_array($query)){
    $id = $sql["id"];
    $idUltimoItem = $id;
    $nome = $sql["nome"];
    $tipo = $sql["tipo"];
    $desc = $sql["desc"];
    $menu = $sql["menu"];
    $imageM = "images/port/mini/" . $sql["imageM"];
    $imageF = $sql["imageF"];
        ?>
              <div class="element-item filter filtros todos <?php echo "$menu";?>" data-category="transition">
                  
                  <div style="padding:2.5px;">
                  <div style="border: 1px solid #AAAAAA;">
                       <!--<a href="#portfolioModal54" class="portfolio-link" data-toggle="modal" id="executaAjax" value="Executa ajax">-->
                       <a href="#portfolioModal54" class="portfolio-link" data-toggle="modal" onclick="portfolioModal(<?php echo $id;?>)" value="Executa ajax">
                                                <img src="<?php echo "$imageM"?>" alt="project 2">
                          <div class="fundo-port">
                            <h1><?php echo "$tipo"?></h1>
                            <h2><?php echo "$nome"?></h2>
                        </div>
    
                          </a>
                      
                      </div>
                  
                  </div>
                  
      </div>
            <?php
    }
    ?> 
    </div></div>
BOTÃO
 <div id="rend-more">
             <!-- <input type="hidden" value="0" id="ultimo_id"> campo oculto que armazena o valor do ultimo ID buscado no banco -->
    
                <button  type="button" id="buttonIdUltimoItem" onClick="pegaDados();" value="<?= $idUltimoItem;?>" style="width: 262px; height: 50px; border: 1px solid rgb(84, 128, 128); position: relative; top: 30%; left: 50%; transform: translateX(-50%); cursor: pointer;  background-color: white;" class="todos">
                    <h2 style="text-align: center;color:#4d8984;font-family: 'Gotham-Thin';float: left;font-size: 25px;padding-left: 30px;padding-top: 5px;">CARREGAR</h2>
                    <h3 style="padding-left: 5px;float: left;font-size: 25px;color:#4d8984;font-family: 'gotham-bold';padding-top: 5px;">+</h3></button>
            </div> 
Pegar Portfolio:

    <?php
    
    function fn_conexao(){
    
        $dbuser = "####";
        $dbpass = "####";
    
        try {
    
            $pdo = new PDO('mysql:host=localhost;dbname=###',  $dbuser, $dbpass);
            $pdo -> setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
        } catch(Exception $e) {
    
            echo 'Erro na conexao: ' . $e->getMessage();
        }
    
        return $pdo;
    }
    
    function dados($pdo){
    
        try {   
    
                if(!isset($_GET['id']) or $_GET['id'] == null){
    
                    $id = 0; //se o GET nao for enviado o for enviado como nullo , a variável ID pega o valor de 0
    
                }else{
    
                    $id = $_GET['id']; //pega o valor passado via GET
                }
    
                $arr = array();
    
                $sql = "ALTER DATABASE portfolio CHARSET = UTF8 COLLATE = utf8_general_ci";
                $sql = "SELECT * FROM portfolio WHERE id < $id ORDER BY id DESC LIMIT 6";
                $stmt = $pdo->prepare($sql);
                $stmt->execute();
                $linha = $stmt->fetchAll(PDO::FETCH_ASSOC);
                if($stmt->rowCount() >= 1){
    
                    return $linha; //retorna o resultado da query
    
                }else {
    
                    return 0;
    
                }
            } catch(Exception $e) {
    
                print 'Erro ao inserir os dados no banco: ' . $e->getMessage();
                $conexao = desconecta($conexao);
    
            }
    }
    
    $conexao = fn_conexao();
    $dados = dados($conexao);
    
    $dados = json_encode($dados); //converte o resultado para json
    
    print $dados; //imprime os dados na tela
    ?>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloque o script que deseja carregar apenas quando a página estiver carregada, dentro de:

$(document).ready(function(){

 //aqui vai seu script;

});

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Coloque o script que deseja carregar apenas quando a página estiver carregada, dentro de:

$(document).ready(function(){

 //aqui vai seu script;

});

amigo, eu quero que quando eu aperte em CARREGAR + so carregue os blocos do banco de dados quando estiver carregado a imagem, pois está carregando o bloco da div e depois a imagem por delay do banco de dados..

a pagina ja vai ta carregada, é um tipo de função ajax

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Thiago Duarte
      Oi, gostaria de arrastar imagem e ao soltar formar bloco html, meu bloco de html ficaria com nome, content-1.html, content-2.html, etc
       
      Alguem pode me ajudar?
    • Por ILR master
      Salve galera.
       
      Vou publicar um evento e quero colocar um Cronômetro regressivo que mostre em tempo real os dias, horas e minutos que faltam para determinada data, tipo:.
      Faltam 5 dias, 12:30:00 para inauguração.
       
      Qdo chegar no dia, quero que apenas apareça uma mensagem.
       
      Alguém pode me ajudar?
    • 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 ment0r
      Boa noite pessoal, tudo bem?
       
      Estou desenvolvendo um sistema simples com exibição de formulário via modal. Uma vez cadastrado o serviço (tabela possui apenas dois campos, id e nome), eles são exibidos numa tabela com um ícone que permite a alteração do nome.

       
      Eu clico no ícone e é chamado um modal que é gerado via ajax (pois são vários registros).
       

       
      Nesse modal é mostrado o serviço e uma vez alterado, o botão Salvar chama uma função que atualiza a tabela servico, concluindo a tarefa. Fiz o mesmo processo pra cadastrar o serviço, com a diferença de que o modal está presente na mesma página, ou seja, não é chamado via ajax.
       
      Eis os códigos:
      <a href="#" onclick="modalUpdate(<?= trim($array['id']) ?>)"> <i class='bx bx-edit'></i> </a> // Trecho onde eu chamo a função modalUpdate. Função btAltServico click:
      $('#btAltServico').click(function() { var inpnome = $('#nome'); var inpid = $('#id'); if (inpnome.val() == '') { swal("Atenção", "Por favor, preencha os campos obrigatórios", "warning"); if (inpnome.val() == '') { inpnome.css("border","2px solid #f94545"); } else { inpnome.css("border",""); } alert(inpnome); alert(inpid); } else { $.ajax({ url: '../inc/ajax/altServico.php', type: 'post', dataType: 'json', // pode ser html data: { nome : inpnome.val(), id : inpid.val() }, success: function(resposta){ if (resposta == 1) { inpnome.val(""); inpnome.css("border",""); swal("Sucesso", "Serviço alterado", "success"); } else { if (resposta == 0) { swal("Erro", "Serviço não alterado. Log de erro gerado.", "error"); } else { swal("Atenção", "Serviço já cadastrado", "warning"); } } } }) } });  
      E modalUpdate.php :
       
      <?php /* * altServico.php * * Script responsável pelo update de serviços na tabela servico * * Função chamada pelo arquivo ajax.js */ //if ($_POST) { require'../conn.php'; require'../../class/class.geral.php'; $geral = new Geral(); $nome = $_POST['nome']; $id = $_POST['nome']; $ativo = 1; // Verifica se o servico já foi cadastrado $sqlVer = "select nome from algo68_db_cliente.servico where nome = '".$nome."' and id <> ".$id.""; $queryVer = mysqli_query($conn, $sqlVer); $resultVer = mysqli_num_rows($queryVer); if ($resultVer > 0) { echo json_encode(2); // servico já cadastrado } else { // Update do servico $sql = "update algo68_db_cliente.servico set nome = '".$nome."', ativo = ".$ativo." where id = ".$id; $query = mysqli_query($conn, $sql); $result = mysqli_affected_rows($conn); if ($result > 0) { echo json_encode(1); // alterou o servico } else { $geral->logErro(date('d/m/Y|H:i:s'), @$_SERVER[REQUEST_URI], 'AlterarServico', mysqli_error($conn)); echo json_encode(0); // não alterou o servico } } //} ?> O problema é que quando clico no botão Salvar, não acontece nada - se eu colocar um alert qualquer na função click, só pra saber se está chegando, também não da nada. E está da mesma forma que o cadastro de serviço, que funciona perfeitamente.

      Bom, é isso pessoal, tentei ser o mais breve e especifico possível. Qualquer ajuda é bem vinda, obrigado a todos, desde já.
    • Por gersonab
      bom dia
      tenho uma aplicação onde gero um arquivo em pdf, gostaria de recuperar a url do pdf q foi criado, pois quando este é criado ele abre automaticamente e ou ja faz o download do mesmo, preciso da url para enviar para outros.
      <button type="button" class="btn btn-outline-primary" onclick="createPDF();">Imprimir</button> <script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/1.4.1/jspdf.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/canvas2image@1.0.5/canvas2image.min.js"></script> <script language="javascript"> (function($){ $.fn.createPdf = function(parametros) { var config = { 'fileName':'html-to-pdf' }; if (parametros){ $.extend(config, parametros); } var orig = $(this); var widthOrig = $(orig).width(); $(orig).width(900); var quotes = document.getElementById($(orig).attr('id')); html2canvas(quotes, { onrendered: function(canvas) { var pdf = new jsPDF('p', 'pt', 'letter'); for (var i = 0; i <= quotes.clientHeight/900; i++) { var srcImg = canvas; var sX = 0; var sY = 900*i; var sWidth = 900; var sHeight = 900; var dX = 0; var dY = 0; var dWidth = 900; var dHeight = 900; window.onePageCanvas = document.createElement("canvas"); onePageCanvas.setAttribute('width', 900); onePageCanvas.setAttribute('height', 900); var ctx = onePageCanvas.getContext('2d'); ctx.drawImage(srcImg,sX,sY,sWidth,sHeight,dX,dY,dWidth,dHeight); var canvasDataURL = onePageCanvas.toDataURL("image/png", 1.0); var width = onePageCanvas.width; var height = onePageCanvas.clientHeight; if (i > 0) { pdf.addPage(612, 791); } pdf.setPage(i+1); pdf.addImage(canvasDataURL, 'PNG', 20, 40, (width*.62), (height*.62)); // Retirar o comentário caso queira ver como está sendo gerado o canvas. //document.body.appendChild(onePageCanvas); } pdf.save(config.fileName); $(orig).width(widthOrig); } }); }; })(jQuery); function createPDF() { $('#renderPDF').createPdf({ 'fileName' : '<?php echo $usercli['idocl']; ?>' }); }  
×

Informação importante

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