Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá Pessoal,
Não faço ideia de como posso fazer para que ao mudar um "status" de "0" para "1" em uma linha no banco de dado uma pagina dar refresh sozinha.
Sobre o site:
É um site para executar um video do youtube simultâneo no pc e no celular, Já possui uma página para pc e uma outra para acessar no celular.
O Fluxo funciona assim:
1 - Ao acessar o site pelo pc, vai ser exibido toda a instrução para acessar a outra página no celular.
2 - Quando acessar a página pelo celular, vai ser criado uma linha no banco de dados que possui 3 colunas (id - Auto incremente / código - Salva um cod. aleatório / status - padrão "0"). Será exibido um código para digitar no input text da pagina que está aberta no pc.
3 - Após digitar o codigo na pagina que está aberta no pc e dar um submit nesse código, vai ser alterado o status dessa linha no BD de "0" para "1".
4 - Assim q alterar o status para "1" a pagina do celular da um refresh automático.
Observação: todo o fluxo já está pronto, o que eu preciso é só fazer esse refresh sozinho na página do celular ao mudar o status de "0" para "1".
Como posso fazer isso? Muito obrigado pela atenção!
Bom dia Luan, muito obrigado pela explicação e pela atenção... era exatamente isso que eu estava tentando fazer, inseri esse Js e criei o arquivo de consulta em php, adicionei tbm a query de consulta quando o status = "1" e o código for o mesmo que esta no value do input "codigo" ele da o echo "1" ou echo "0".
O que acontece é q não atualiza a pagina mesmo exibindo o "1" "consulta.php" poderia ser o "data" do JS ? vou postar o código para você ver o q pode estar errado:
consulta.php:
<?php
//conexao!
include("../connect.php");
//Vamos verificar se existe o POST cod
if(isset($_POST['cod'])){
$cod = $_POST['cod']; //Agora o código vindo do post esta da variavel
//Aqui faça a consulta no banco de dados na tabela que você precisa - ACHO QUE ISSO VOCÊ SABE FAZER
//APOS A CONSULTA VERIFICA SE O STATUS AONDE TEM ESTE CÓDIGO ALI É IGUAL A 1
//SE FOR IGUAL A 1 DA UM ECHO 1 , SE NÃO DA UM ECHO 0 : OLHA
$selectStatus = mysql_query("SELECT codigo, status FROM app_sinc WHERE codigo = '$cod' AND status = '1'") or die (mysql_error());
$contaStatus = mysql_num_rows($selectStatus);
if($contaStatus >= 1){
echo "1";
}else{
echo "0";
}
}
?>
Javascript:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script>
$(function() {
setTime();
function setTime() {
//Pegando o codigo da inout invisivel
var cod = $('#codigo').val();
//Enviando um post a cada 3segundos para o arquivo php que irá consultar
setTimeout(function() {
$.post('consulta.php',{cod:cod},function(data){
//Se o resultado da consulta for 1 atualiza
if(data == 1){
location.href="video.php";
}else{
//Se não não faz nada
}
});
}, 1000);
}
</script>
eu acho que deve ser ali no data do js que não está reconhecendo o "0" e "1" que retorna do arquivo consulta.php o que pode estar errado?
Grato!Bom então tenta colocar o 1 , ali do JS, entre aspas
>
Em 18/12/2017 at 12:14, felpsquirino disse:
if(data == 1){ location.href="video.php"; }else{ //Se não não faz nada }
Por
if(data == "1"){ location.href="video.php"; }else{ //Se não não faz nada }
Talvez se este for o problema ira resolver...
Caso nao resolva, tente colocar outro identificador quando o status for 1
Recomendo que você de um alert no data, so pra ver oque esta retornando...
Ex:
Comenta esta linha
if(data == 1){ location.href="video.php"; }else{ //Se não não faz nada }
E insere isso:
alert(data);
O Certo é usar Jquery para isso... passo a passo:
1 - Adicione o Jquery em seu sistema
<!-- Não se esqueça do value e do id -->
//Vamos verificar se existe o POST cod