Estoy experimentando con javascript / jquery / Ajax
Pongo el código y al final explico el problema.
Código:
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,<!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>
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