arldin 1 Denunciar post Postado Setembro 21, 2015 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
Rafael R Silva 27 Denunciar post Postado Setembro 21, 2015 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
arldin 1 Denunciar post Postado Setembro 21, 2015 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
Rafael R Silva 27 Denunciar post Postado Setembro 22, 2015 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
arldin 1 Denunciar post Postado Setembro 24, 2015 Valeu amigo resolve obrigado pela força Compartilhar este post Link para o post Compartilhar em outros sites