Comunidad de diseño web y desarrollo en internet online

controlar la ejecución de setInterval con varieble de php

Citar            
MensajeEscrito el 27 Jun 2012 04:09 am
Hola, de ante mano se agradece la colaboración, el tema es el siguiente, no he podido controlar la ejecución del comando setInterval al encontrar el valor que deseo, valor que traspaso de una búsqueda realizada en una pagina PHP sobre una BD mysql.
Lo explico a continuación, cargo la pagina principal junto con la ejecución del comando setInterval la que llama a una pagina php que consulta la DB en búsqueda de un dato en particular, cuando encuentre un registro dado le paso a la función que tiene el comando setInterval un valor por una variable php para detener la ejecución del setInterval y poder trabajar con este registro encontrado. mi problema es que no se detiene la ejecución o se detiene y no puedo volver a arrancar el setInterval, todo depende si el registro lo encuentra al iniciarse al cargar la pagina principal o si el registro lo encuentra después de ejecutado el intervalo.

aquí va el código de ejemplo

index.php

<?php
session_start();
?>

<head>
<script type='text/javascript' src="script/jquery.1.7.1.min.js"></script>
<script language="javascript">
var intval = "";
function start(){
intval=setInterval(function(){
$('#echos').load('timerconsulta.php');
stop();
},6000);
}

function stop(){
var variablejs = "<?php echo $_SESSION['ES']; ?>" ;
if (variablejs == "1") {
if(intval!=""){
clearInterval(intval);
intval="";
imprime("Timer detenido");
}
}
if (variablejs == "0") {
imprime("Timer andando");
}
}

function imprime(Texto) {
document.getElementById("Status_Timer").innerHTML = Texto;
}
</script>
</head>
<body onload="start_Int()">
<div id="Status_Timer">Timer andando</div>
<div id=echos><b>Cargando...</b>
<input type='button' id='idparar' value='parar' onClick='stop_Int()' />
<input type='button' id='idandar' value='andar' onClick='start_Int()' />
<input type='button' id='idimpr' value='imprime' onClick='imprime(<?php echo $_SESSION['ES']; ?>)' />
</div>
</body>

timerconsulta.php

<?
session_start();

mysql_connect('localhost','root','pass');
mysql_select_db('sys_ronline');
$ga = mysql_query("SELECT ID_CLIENTE FROM RA_CLIENTES WHERE ACTIVO = '1'");

if (mysql_num_rows($ga)==0) {
$_SESSION['ES'] = 0;
$nuevo_texto = 'VACIO ';
$nuevo_texto .= "<input type='button' id='idparar' value='parar' onClick='stop_Int(1)' />";
$nuevo_texto .= "<input type='button' id='idandar' value='andar' onClick='start_Int(1)' />";
$nuevo_texto .= '<input type="button" id="idimpr" value="imprime" onClick="imprime('.$_SESSION['ES'].')" />';
echo $nuevo_texto;
} else {
$_SESSION['ES'] = 1;
$nuevo_texto = 'es un valor de '.mysql_result($ga,0);
$nuevo_texto .= "<input type='button' id='idparar' value='parar' onClick='stop_Int(1)' />";
$nuevo_texto .= "<input type='button' id='idandar' value='andar' onClick='start_Int(1)' />";
$nuevo_texto .= '<input type="button" id="idimpr" value="imprime" onClick="imprime('.$_SESSION['ES'].')" />';
echo $nuevo_texto;
};
?>

Por rodrorox

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 27 Jun 2012 03:55 pm
si lo que quieres es evitar el intervalo se repita en vez de usar LOAD porque no usas el AJAX y en el success mandas eliminar el intervalo... ahora de preferencia salvo alguien con mas experiencia que yo me corriga, no deberias usar ese tipo de codigo en el setInterval bueno a mi muy particular punto de vista mejor haz una funcion por separado ahi la mandas llamar y en la funcion por separado cancelas el Intervalo

Por ldgmmorales

Claber

142 de clabLevel

1 tutorial

Genero:Masculino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.