elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 13:10  


Tema destacado: Grupo de Facebook de elhacker.net

+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP
| | | |-+  Como llamar automaticamente funciones AJAX ??
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como llamar automaticamente funciones AJAX ??  (Leído 2,588 veces)
Diabliyo


Desconectado Desconectado

Mensajes: 1.270


M.S.I Angel Cantu


Ver Perfil WWW
Como llamar automaticamente funciones AJAX ??
« en: 27 Agosto 2008, 20:15 »

Hola:

Estoy realizando un sistema para vender cosas, asi que en el apartado de VENTAS tengo un formulario un poco amplio en donde se doy escojer el tipo de venta, datos del cliente y finalmente una capa GRANDE (contenedor) en donde voy poniendo los articulos/productos que va comprando el cliente. Utilizando AJAX compruebo la existencia del Cliente que desea comprar o bien en el caso que no exista pongo un formulario para que puedan registrarlo a la vez que esta comprando.

Mi idea es que en la capa GRANDE (contenedor de los productos) poderla refrescar sin necesidad de dar click, vaya, que se ejecute una funcion de AJAX cada ciertos segundos...

Como podria ejecutar una funcion de AJAX cada cierto tiempo ???...

NOTA: toda mi aplicacion esta echa con PHP y solo utilizo AJAX para listar, buscar y generar datos rapidos sin refrescar. Para esto utilizo una sola funcion de AJAX, la cual llamo cargar_datos();, mediante eventos onclick, onchnage o onsubmit

bye bye


En línea

Ertai
Ex-Staff
*
Desconectado Desconectado

Mensajes: 2.026


Ralph Wiggum


Ver Perfil
Re: Como llamar automaticamente funciones AJAX ??
« Respuesta #1 en: 27 Agosto 2008, 21:17 »

Con la función setTimeOut en javascript:

http://www.webtaller.com/construccion/lenguajes/javascript/lecciones/funciones_setinterval_settimeout_javscript.php

Saludos.


En línea

Si la felicidad se comprara, entonces el dinero sería noble.

Código:
void rotar_by_ref(int& a, int& b) {
   /* Quien dijo que no se podia sin una variable temporal? */
   *a = *a ^ *b;
   *b = *a ^ *b;
   *a = *a ^ *b;
}
Diabliyo


Desconectado Desconectado

Mensajes: 1.270


M.S.I Angel Cantu


Ver Perfil WWW
Re: Como llamar automaticamente funciones AJAX ??
« Respuesta #2 en: 27 Agosto 2008, 23:06 »


Ya he podido hacer que se reptra cada cierto tiempo que yo deseo, el problema es que no logro pasar unos valores con setInterval() :(... Mira, te explico:

La funcion que utilizo para cargar datos es:

Código
function cargar_datos( vars, capaview, flujoddatos, varsform )
{
var conector, capa, url;
 
url= 'ajax.php'; //mis funciones para ajax
capa= document.getElementById(capaview);
 
conector= ajax();
conector.open( flujoddatos, url+'?'+vars, true );
conector.onreadystatechange= function()
{
if( conector.readyState==1 )
{
capa.innerHTML= "<center><img src='../admin/imagenes/loading.gif'><br><b>CARGANDO...</b></center>";
}
else if( conector.readyState==4 )
{
if( conector.status==200 )
{
if( varsform!=0 )
conector.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
capa.innerHTML= conector.responseText;
}
else if( conector.status==404 )
{
capa.innerHTML= "La pagina que intentas cargar no existe...";
}
else
{
capa.innerHTML= conector.status;
}
}
}
//conector.setRequestHeader( "Content-Type", "multipart/form-data" );
if( varsform!=0 )
{
var myarr= varsform.split(':'); //dividimos
var trama="";
var i=0;
 
for( i=0; i<(myarr.length); i++ )
{
if( i>0 )
trama += "&";
trama += myarr[i]+"="+document.getElementById(myarr[i]).value;
}
 
conector.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
conector.send(trama);
}
else
conector.send(null);
}

Asi que, para no modificar mas mi funcion, solo cree una funcion alterna que invoca a la funcion que acabo de mencionarte, y es:

Código
function carga_datos_recursiva( vars, capaview, flujoddatos, varsform )
{
//alert(vars)
setInterval( "cargar_datos( vars, capaview, flujoddatos, varsform )", 2000 );
}

Y me sale el siguiente error, segun el Debuger de Firefox:

Código:
vars is not defined
http://localhost/~miuser/admin/js/script.js

Ya he invocado un alert() en la nueva funcion carga_datos_recursiva, y me imprime satisfactoriamente el contenido que debe tener vars, pero porque marca error ???... Aparte del error, pues no se muestra lo que quiero :S, me imagino que por lo mismo !!...

« Última modificación: 27 Agosto 2008, 23:24 por Diabliyo » En línea

Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.561


Shrödingerificado


Ver Perfil
Re: Como llamar automaticamente funciones AJAX ??
« Respuesta #3 en: 28 Agosto 2008, 15:53 »

Cuando el cliente compra un nuevo producto se producen un montón de eventos (y supongo que en javascript se pueden lanzar también, aunque eso da igual), deberías refrescar la lista no cada cierto tiempo sino cuando se produce alguno de esos eventos, es decir, cuando hay algo que refrescar.
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como llamar funciones de otras dll que no sean de windows?
Programación C/C++
SuperNovato 4 1,541 Último mensaje 5 Marzo 2011, 01:29
por e-spy
Llamar dos funciones AJAX en onChange
Desarrollo Web
KateLibby 7 1,633 Último mensaje 26 Octubre 2011, 11:29
por KateLibby
Como hacer un Ajax Cross Domain? « 1 2 »
Desarrollo Web
Skeletron 21 2,488 Último mensaje 12 Diciembre 2011, 18:19
por raul338
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines