Ir para conteúdo
violin101

PHP - CountDown chamar função sem usar na - body onLoad="settimer();"

Recommended Posts

Caros amigos, saudações...

 

Estou com uma dúvida referente CHAMAR Função do javaScript sem usar na <body>:

<body onLoad="settimer();">	

 

Escrevi uma rotina de exemplo para Contar: Dia|Hora|Minutos|Segundos - está funcionando corretamente.

Mas para chamar a Função tive que chamar através da onLoad(), na <body>.

 

Como faço para chamar a função sem que seja na <body> e toda vez que a página for iniciada a Função começa automaticamente.

 

Abaixo posto o Código Fonte.


<?php
    //Conexão com o MySql
    $connection = mysqli_connect("localhost", "root", "", "classmodels");
    $sql = "SELECT * FROM orders WHERE orderNumber='1000'";
    $result = mysqli_query($connection, $sql);
    $row = mysqli_fetch_object($result);	
	
	$dta = date(('Y/m/d'), strtotime($row->requiredDate));
	$hrs = date(('H:i:s'), strtotime($row->horaDate));

?>

 
<!DOCTYPE html>
<html lang="pt-BR">
	<head>
		<meta charset="UTF-8">
		<title>Conta Horas</title>
		<link rel="stylesheet" href="style.css">
	</head>
	
	<body onLoad="settimer();">	<!-- Como chamar a Função settimer, sem usar na BODY -->
      <br/><br/>	    
		<input type="hidden" id="dta" value="<?php echo $dta; ?>" placeholder="Data" disabled>
		<input type="hidden" id="hrs" value="<?php echo $hrs; ?>" placeholder="Hora" disabled>
      <br/><br/>
	   
		<div class="container">
			<h1>Contando Horas</h1><br/>

			<label>Data: 
	           <label><?php echo $dta; ?> - <?php echo $hrs; ?></label>
            </label>						
            <br/><br/>

            <h2>Falta</h2>	
			<div class="count">
				<div class="countd">
					<span id="days">00</span>
					dias(s)
				</div>

				<div class="countd">
					<span id="hours">00</span>
					hora(s)
				</div>

				<div class="countd">
					<span id="minutes">00</span>
					minuto(s)
				</div>

				<div class="countd">
					<span id="seconds">00</span>
					segundo(s)
				</div>									
			</div>

		</div>	   
	   
	  <br/><br/>
	    <p id="timer_value"></p>
	  <br/>
	 
	  <!--Função para o CountDown -->
	  <script type="text/javascript">
		var timer;
		function settimer(){

			 clearInterval(timer);
			 
			 var timer_dta = document.getElementById("dta").value;
			 var timer_hrs = document.getElementById("hrs").value;
			 if(timer_hrs == ""){
			 	timer_hrs = 0;
			 }
             
             // Variável para Concatenar Data e Hora
             var timer_date = timer_dta+" "+timer_hrs;			 
			 
			 var end = new Date(timer_date); // Organizar valores no formato de data e hora
			 var now = new Date();           // Obtem data e hora atual
			 var second = 1000;              // Milissegundo: Total em 1 segundo
			 var minute = second * 60;       // Segundo.....: Total em 1 minuto
			 var hour = minute * 60;         // Minuto......: Total em 1 hora
			 var day = hour * 24;            // Hora........: Total em 1 dia

			 function showtimer() {
				  var now = new Date();     // Data atual
				  var calcular = end - now; // Calcula a diferença entre a hora atual e a data inserida
				  if(calcular < 0) {
					  clearInterval(timer);
					  document.getElementById("days").innerHTML = '0';  		
					  document.getElementById("hours").innerHTML = '0';  		
					  document.getElementById("minutes").innerHTML = '0';  		
					  document.getElementById("seconds").innerHTML = '0';  		
					return;
				  }

				  var days = Math.floor(calcular / day);                  // Permaneça Dias
				  var hours = Math.floor((calcular % day) / hour);        // Permaneça Horas
				  var minutes = Math.floor((calcular % hour) / minute);   // Permaneça Minutos
				  var seconds = Math.floor((calcular % minute) / second); // Permaneça Segundos

				  document.getElementById("days").innerHTML = days;				  
				  document.getElementById("hours").innerHTML = hours;				  
				  document.getElementById("minutes").innerHTML = minutes;				  
				  document.getElementById("seconds").innerHTML = seconds;
			 }

		   // Atualiza a exibição a cada 1 segundo
		   timer = setInterval(showtimer, 1000); 

		}

	  </script>
	 
	</body>
</html>

 

 

Grato,

 

Cesar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade acho usar onload no body ridículo :smirk: 

 

document.addEventListener('load', NomeDaFuncao, false);

Adicione isso a um script antes do fechamento da tag <body>.

Normalmente depois de todos os elementos (Mas isso não é necessário).

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos, saudações...

Consegui solucionar o meu problema do CountDown.

 

Para quem precisar de uma função de CountDown como precisei, divido meu código com os amigos.

 

index.php

<?php
    //Faz conexão com o MySql
    $connection = mysqli_connect("localhost", "root", "", "nome_banco");
    $sql = "SELECT * FROM tabela WHERE id_campo='10'";
    $result = mysqli_query($connection, $sql);
    $row = mysqli_fetch_object($result);	
	
	$dta = date(('Y/m/d'), strtotime($row->data));
	$hrs = date(('H:i:s'), strtotime($row->hora));

?>

 <!DOCTYPE html>
  <html lang="pt-BR">
    <head>
    	<meta charset="UTF-8">
    	<title>Conta Horas</title>
      <link rel="stylesheet" type="text/css" href="style.css">
    	<script type="text/javascript" src="jquery-v3.3.1.js"></script>
    	<script type="text/javascript" src="countdown.js"></script>
    </head>

	
	<body>	
      <br/><br/>	    
		<input type="hidden" id="dta" value="<?php echo $dta; ?>" placeholder="Data" disabled>
		<input type="hidden" id="hrs" value="<?php echo $hrs; ?>" placeholder="Hora" disabled>
      <br/><br/>
	   
		<div class="container">
			<h1>Contando Horas</h1><br/>

			<label>Data: 
	           <label><?php echo $dta; ?> - <?php echo $hrs; ?></label>
            </label>						
            <br/><br/>

            <h2>Falta</h2>	
			<div class="count">
				<div class="countd">
					<span id="days">00</span>
					dias(s)
				</div>

				<div class="countd">
					<span id="hours">00</span>
					hora(s)
				</div>

				<div class="countd">
					<span id="minutes">00</span>
					minuto(s)
				</div>

				<div class="countd">
					<span id="seconds">00</span>
					segundo(s)
				</div>									
			</div>

		</div>	   
      
      
      <!--Passando informação para o countdown.js  -->
    	<script type="text/javascript">
    		$(document).ready(function(){
            // Variáveis para Capturar Dados do MySql
  	        var timer_dta = document.getElementById("dta").value;
			var timer_hrs = document.getElementById("hrs").value;

   	        // Variável para Concatenar Data e Hora
  	        var timer_date = timer_dta + " " + timer_hrs;

            // Variável passa dados para o .JS
  	        $.countdown(timer_date);

    		});
    	</script>
    	
    </body>
  </html>

 

 

countdown.js

$(document).ready(function(){

   "use strict";
   (function($){
   	$.fn.float = function(number){
   		if(number < 10){
   			return '0' + number;
   		} else {
   			return number;
   		}
   	};
   }(jQuery));


   (function($){
      var j = 0;
      $.countdown = function(time){
     	    var name = "countdown"+ j;

          var cname ="."+name;
          var newdate = new Date(time).getTime();  
          var countdown = setInterval(function(){
        	var now = new Date().getTime();
        	var dif = newdate - now;

            var days = Math.floor(dif / (1000*60*60*24));
            var hours = Math.floor((dif % (1000*60*60*24)/(1000*60*60)));
            var minutes = Math.floor((dif % (1000*60*60)/(1000*60)));            
            var seconds = Math.floor((dif % (1000*60)/(1000)));
 
            document.getElementById("days").innerHTML = days;
            document.getElementById("hours").innerHTML = hours;
            document.getElementById("minutes").innerHTML = minutes;
            document.getElementById("seconds").innerHTML = seconds;    


            if(dif <= 0){
            	clearInterval(countdown);
                document.getElementById("days").innerHTML = "0";
                document.getElementById("hours").innerHTML = "0";
                document.getElementById("minutes").innerHTML = "0";
                document.getElementById("seconds").innerHTML = "0";
            }

        }, 500);

      };

   }(jQuery));

}); //Fim do document principal

 

Espero ter ajudado a quem precisar de um código parecido como o acima.

 

Atenciosamente,

 

Cesar

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 landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, ativo. Nela tem cadastrado vários itens. No campo ativo eu coloco a letra "S" para informar que este item está ativo no sistema. Por exemplo: 1, casa, S 2, mesa, S 3, cama, S 4, moto S 5, rádio O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "produtos" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, mesa, moto 2, mesa, casa, cama 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela produtos da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "mesa". Preciso fazer com que o php me liste todos os registros da tabela "produtos" que contenham a palavra "mesa". Até aqui tudo bem eu consigo listar. Estou fazendo assim: <?php $item = "mesa" $sql = mysqli_query($conn, "SELECT * FROM produtos WHERE item1 LIKE '$item' OR item2 LIKE '$item' OR item3 LIKE '$item' LIMIT 10"); while($aux = mysqli_fetch_assoc($sql)) { $id = $aux["id"]; $item1 = $aux["item1"]; $item2 = $aux["item2"]; $item3 = $aux["item3"]; echo $id . " - " . $item1 . ", " . $item2 . ", " $item3 . "<br>"; } ?> O problema é que está listando todos os registros que contém o item mesa. Eu preciso que o php verifique os demais item e me liste somente os registro em que todos os registros estejam ativos no sistema. No exemplo acima ele não deveria listar o registro 3. pois nesse registro contém o item "radio" e este item não está ativo no sistema. Ou seja, o registro "radio" na tabela itens não possui um "S" na coluna "ativo". Alguém sabe como resolver isso?
    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por First
      Olá a todos!
       
      Eu estou criando um sistema do zero mas estou encontnrando algumas dificuldades e não estou sabendo resolver, então vim recorrer ajuda de vocês.
      Aqui está todo o meu código: https://github.com/PauloJagata/aprendizado/
       
      Eu fiz um sistema de rotas mas só mostra o conteúdo da '/' não sei porque, quando eu tento acessar o register nada muda.
      E eu também quero que se não estiver liberado na rota mostra o erro de 404, mas quando eu tento acessar um link inválido, nada acontece.
      Alguém pode me ajudar com isso? E se tiver algumas sugestão para melhoria do código também estou aceitando.
       
       
      Desde já, obrigado.
    • Por landerbadi
      Olá pessoal, boa tarde
       
      Tenho uma tabela chamada "produtos" com os seguintes campos (id, produto) e outra tabela chamada "itens" com os seguintes campos (id, prod_01, prod_02, prod_03, prod_04).
       
      Na tabela produtos eu tenho cadastrado os seguintes produtos: laranja, maçã, uva, goiaba, arroz, feijão, macarrão, etc.
       
      Na tabela itens eu tenho cadastrado os itens da seguinte maneira:
       
      1, laranja, uva, arroz, feijão;
      2, maçã, macarrão, goiaba, uva;
      3, arroz, feijão, maçã, azeite
       
      Meu problema é o seguinte: 
      Eu escolho um produto da tabela "produtos", por exemplo "uva".  Preciso fazer uma consulta na tabela "itens" para ser listado todos os registros que contenham o produto "uva" e que todos os demais produtos estejam cadastrados na tabela "produtos".
       
      No exemplo acima seria listado apenas dois registros, pois o terceiro registro não contém o produto "uva". 
       
      Alguém pode me ajudar? Pois estou quebrando a cabeça a vários dias e não consigo achar uma solução.
    • Por landerbadi
      Boa tarde pessoal. Estou tentado fazer uma consulta no banco de dados porém estou tendo dificuldades. Tenho uma tabela chamada "itens" com os seguintes campos: id, item, plural, ativo. Nela tem cadastrado vários itens e seu respectivo plural. No campo ativo eu coloco a letra "S" para informar que esta palavra está ativa no sistema. Por exemplo: 1, casa, casas, S 2, mesa, mesas, S 3, cama, camas, S 4, moto, motos, S 5, rádio, rádios O quinto registro "radio" não está ativo no sistema pois não tem um "S" no campo ativo. E outra tabela chamada "variações" com os seguintes campos (id, item1, item2, item3) com os seguintes registros: 1, casa, camas, moto 2, mesas, casas, radio 3, rádio, cama, mesa Eu preciso fazer uma busca na tabela variações da seguinte maneira: Eu escolho um registro na tabela "itens", por exemplo "casa". Preciso fazer com que o php me liste todos os registros da tabela "variações" que contenham a palavra "casa". Porém se tiver algum registro com a palavra "casas" também tem que ser listado. Neste caso ele irá encontrar dois registros. Agora eu preciso que o php verifique os demais itens e faça a listagem apenas dos item que estão ativos (que contenham um "S" no campo ativo. Neste caso ele irá encontrar apenas um registro, pois o segundo registro contém a palavra "rádio". E "rádio" não está ativo na tabela itens. Como faço isso?
×

Informação importante

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