Ir para conteúdo

POWERED BY:

Arquivado

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

arldin

Atualizar uma pagina quando for clicado em outra pagina

Recommended Posts

Boa tarde a todos

Não sei se aqui que eu tiro está duvida.

Eu preciso fazer uma atualização em uma pagina quando for clicado em outra.

Tenho duas 2 paginas uma onde o fiscal faz a liberação do carros e a outra que informa qual e o próximo a sai com um cronometro marcando o tempo de saída.

este e parte do sript do fiscal

<?php
//iniciando a conexão com o banco de dados
$cx = mysqli_connect("localhost", "root", "");

//selecionando o banco de dados
$db = mysqli_select_db($cx, "roncalli");

//criando a query de consulta à tabela criada
$sql = mysqli_query($cx, "SELECT * FROM carros WHERE status = '1'") or die(
	mysqli_error($cx) //caso haja um erro na consulta
);

//pecorrendo os registros da consulta.
while($aux = mysqli_fetch_assoc($sql))
{


echo  '<form id="cadastro" name="cadastro" method="post" action="cadastro3.php" onsubmit="return validaCampo(); return false;">';
  echo '<table width="625" border="0">';
	echo '<tr>';
      echo '<td width="380">';
	  echo '<h4>';	  
	  echo 'Tabr número:';
	  echo '</h4>';	  
	  echo '</td>';
      echo '<td width="546"><input name="tabr" type="hidden" id="tabr" size="10" maxlength="60" value="';
	  echo "".$aux["tabr"]."";
	  echo '"/>';
	  echo '<h4>';
	 echo "".$aux["tabr"]."<br />";
	 echo '</h4>';
        echo '</td>';
    echo '</tr>';
    echo '<tr>';
      echo '<td>Hora da saida:</td>';
     echo '<td>';
	 echo '<input name="data" type="hidden" id="data" size="20" maxlength="60" value="';
	  echo $data=date("H:i:s");
	 
	 echo '" />';
	  echo $data=date("H:i:s");
	
    echo '</tr>';
    echo '<tr>';
      echo '<td>';
	  echo 'Hora para passar no Vitoria:';
	  echo '</td>';
      echo '<td>';
	  echo '<input name="vitoria" type="hidden" id="vitoria" size="20" maxlength="70" value="';
	   echo date("H:i:s", strtotime("+ 14 minute"));
	  echo '" />';
	  echo date("H:i:s", strtotime("+ 14 minute"));
        
		echo '</td>';
    echo '</tr>';
    echo '<tr>';
	echo '<input name ="news" type="hidden" id="news" size="10"  maxlength="70" value="1" />';
    echo '<tr>';
      echo '<td colspan="2">';
	  echo '<p>';
        echo '<input name="cadastrar" type="submit" id="cadastrar" value="Liberar carros" />'; 
        echo '<br />';
          echo '<br />';
		  echo '</p>';
      echo '<p>  </p>';
	  echo '</td>';
    echo '</tr>';
  echo '</table>';
echo '</form>';
}

?>

E este e o que mostra o carro que vai sai e o cronometro

<div id="content3">
Próximo carro a sair
<p>
<?php
//iniciando a conexão com o banco de dados
$cx = mysqli_connect("localhost", "root", "");

//selecionando o banco de dados
$db = mysqli_select_db($cx, "roncalli");

//criando a query de consulta à tabela criada
$sql = mysqli_query($cx, "SELECT * FROM carros WHERE status = '1'  LIMIT 1") or die(
	mysqli_error($cx) //caso haja um erro na consulta
);

//pecorrendo os registros da consulta.
while($aux = mysqli_fetch_assoc($sql))
{


echo  '<form name = "formcliente" method = "post" action="excluir.php?id=';
echo "".$aux["id"]."";
echo '">';
  echo '<table width="625" border="0">';
	echo '<tr>';
      echo '<td width="100">';	  	  
	  echo 'Tabr número:';	  	  
	  echo '</td>';
	  echo '<td>';     
	 echo "".$aux["tabr"]."<br />";	
        echo '</td>';
    echo '</tr>';
  echo '</table>';
echo '</form>';
}

?>
<p>
<form name="crono">
Tempo máximo e de 04:00 minutos<p>
<input type="text" size="7" name="face" title="Cronómetro">
<script language="JavaScript">
<!-- 
var timeCrono; 
var hor = 0;
var min = 0;
var seg = 0;
var startTime = new Date(); 
var start = startTime.getSeconds();
StartCrono();
function StartCrono() {
if (seg + 1 > 59) { 
min+= 1;
}
if (min > 59) {
min = 0;
hor+= 1;
}
var time = new Date(); 
if (time.getSeconds() >= start) {
seg = time.getSeconds() - start;
} 
else {
seg = 60 + (time.getSeconds() - start);
}
timeCrono= (hor < 10) ? "0" + hor : hor;
timeCrono+= ((min < 10) ? ":0" : ":") + min;
timeCrono+= ((seg < 10) ? ":0" : ":") + seg;
document.crono.face.value = timeCrono;
setTimeout("StartCrono()",1000);
} //--> 
</script>
</form>
	
</div>

Como faço esta atualização sem ter que colocar o refresh na página onde tem o cronometro

Desde já agradeço a todos pela a ajuda

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

O único jeito de fazer isso é com Ajax;

 

Crie uma função que fique verificando a alteração que deseja, caso isso aconteça você executa ação que vai atualizar o registro afetado.

 

Entendeu?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rafael obrigado pela sua atenção.

Mais e o seguinte eu tenho pouco conhecimento em ajax, fiz pesquisa no google mais não encontrei o que você sugeriu. Não abusando da sua atenção tem como me da uma luz nesta função

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arldin,

 

Segue como você tem que fazer.

 

 

Você trabalha com o banco para gerencia a tabela de "carros",para isso você esta utilizando duas frentes:

Parte do Fiscal e Parte do Cronometro;

Sendo que a parte do cronometro depende de uma ação feita na parte do fiscal.

 

Crie uma terceira pagina que vai verificar se teve alguma alteração no registro não sei se você tem algum campo na tabela "carros" para gerenciar o se foi alterada ou não e quando foi alterada ou simplismente criar uma flag para essa terceira pagina saber que esse item tem que ser adicionado na tela de cronometro ou atualizar a mesma;

 

Se baseando nesse pensamento o arquivo de verificação ficaria mais o menos assim:

 

spec.php

<?php
//iniciando a conexão com o banco de dados
$cx = mysqli_connect("localhost", "root", "");

//selecionando o banco de dados
$db = mysqli_select_db($cx, "roncalli");

//criando a query de consulta à tabela criada
$sql = mysqli_query($cx, "SELECT * FROM carros WHERE status = '1'") or die(
	mysqli_error($cx) //caso haja um erro na consulta
);
$carros = array;
//pecorrendo os registros da consulta.
while($aux = mysqli_fetch_assoc($sql)){
  $carros[] = $aux;
 
}

$response['total_registro'] = count($carros);
$response['data'] = $carros;

echo json_encode($response);




Feito isso, você estará retornando um objeto json com o resultado da query no banco .

 

"Sugiro deixar essa query mais espeficica, seja por item ou por flag para ter um maior controle no que vai ser retornado";

 

Feito isso vamos criar um ajax que vai ficar chamando essa pagina spec.php de tempo em tempo para saber se tem algo novo.


<!-- JQUERY VAMOS UTILIZAR ELE PARA FAZER AS CHAMADAS E GERENCIAR O LOAD-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script>

<script>

// EXECUTA ASSIM QUE O DOCUMENTO ESTIVER PRONTO
$( document ).ready(function() {
  // AQUI VAMOS SETAR O INTERVALO ENTRE AS SOLICITAÇÕES AO SPEC NO CASO A CADA 5 Segundo
  setInterval(specAjax(), 5000);
});




// FUNÇÃO QUE FAZ A CHAMA AJAX
function specAjax(){

$.get( "spec.php", function( data ) {
  console.log(data);
  // esse data é o retorno do arquivo spec.php que está retornando um objeto json;
  // Com isso você utiliza os dados para atualizar sua pagina via js;
  // seja trocando os valor dos elementos ou criando elementos novos fica ao seu critério;
},'json');


}


</script>

Com isso você resolve o seu problema!

 

Qualquer coisa manda ai =)

 

Boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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