Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/11/2012, 21:24
carlosego
 
Fecha de Ingreso: septiembre-2009
Mensajes: 6
Antigüedad: 14 años, 8 meses
Puntos: 0
Contador dentro de setInterval no funciona

Hola, me he quebrado la cabeza durante un tiempo sin buenos resultados.
Estoy experimentando con javascript / jquery / Ajax

Pongo el código y al final explico el problema.

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Ataca </title>
<script src="jquery-1.8.2.min.js"></script>
<script language="javascript">

    $(document).ready(function() {

    var numero=0;
      $('#saludar').submit(function(){    		
        save('saludar', formatNumber( ajustar(8, numero++)),'code=');
	return false;	
      });
      
     
     setInterval("save('saludar', formatNumber( ajustar(8, numero++)),'code=')",10000);
	 
    }); // end ready
	

    save = function(form,valor,datos){
		      // Enviamos el formulario usando AJAX
      $.ajax({
         type: 'POST',
         url: $('#'+form).attr('action'),
         //data: $('#'+form).serialize(),
         data: datos +valor,
         dataType: "html",
         error: function(data){
			 //$('#result').html(data);
        },
         // Mostramos un mensaje con la respuesta de PHP
         success: function(data) {
            //$('#result').html(x);
         }
      });
    }
//Llena con ceros a la izquierda el tamaño deseado p.e 000000001
   function ajustar(tam, num) {
	if (num.toString().length <= tam) return ajustar(tam, "0" + num)
	else return num;
	}

//Formatea el numero con puntos p.e 000.000.001	
function formatNumber(num){
   num += '';
   var splitStr = num.split('.');
   var splitLeft = splitStr[0];
   var splitRight = splitStr.length > 1 ? '.' + splitStr[1] : '';
   var regx = /(\d+)(\d{3})/;
   while (regx.test(splitLeft)) {
      splitLeft = splitLeft.replace(regx, '$1' + '.' + '$2');
   }
   return splitLeft + splitRight;
}
</script>
</head>
<body>

<form id="saludar" name="saludar" action="http://servidor.com/saluda.php" method="post">
<input type="hidden" id="code" name="code" value="000.000.000"/>
<input type="submit" value="Saluda"><span>7</span>
</form>

<div id="result"></div>
</body>
</html>
bien, tengo un formulario con un boton "saluda". Cada que presiono el boton manda a saluda.php por metodo POST el valor code=000.000.001, y si lo presiono de nuevo code=000.000.002 etc.. Hasta aqui ok,
Pero sucede que necesito automatizar el proceso, es decir, enviar el recordatorio al usuario 000.000.001, luego al 000.000.002 cada 10 segundos por ejemplo.. Por ello metí el setInterval, pero simplemente no hace nada...
El problema esta en:
setInterval("save('invitar', formatNumber( ajustar(8,numero++)),'code=')",10000);

pues cuando reemplazo numero++ con un numero, entonces me envia la peticion cada 10 segundos, pero sin incrementar... No encuentro solución y espero puedan ayudarme..
Saludos