como: ejecutar función ajax al cargar la página

1,929 views
Skip to first unread message

nicolás rosbaco

unread,
Feb 7, 2011, 5:33:06 PM2/7/11
to web2py-...@googlegroups.com
Hola gente de la lista. tengo dos porblemitas y son los siguientes:

1) Cómo hacer para ejecutar una función ajax cuando la página se carga por completo.
Yo la invoco (desde unos radiobuutons del siguiente modo):
<td><INPUT onclick="ajax('{{=URL('general')}}', ['orden'], 'listadoPosiciones')" type="radio" name="orden" value="G" checked> General</td>

2) Quiero además pasarle parámetros, digo: a la función ajax. ¿cómo puedo hacer eso?

Bueno desde ya mil gracias

--
"En un país colonial las oligarquías son las dueñas de los diccionarios" (John William Cooke)

Martín Mulone

unread,
Feb 8, 2011, 5:34:21 AM2/8/11
to web2py-...@googlegroups.com
1) Hay varias formas, una es con LOAD(). cap13 del libro.

2) Para pasarle parámetros a la función URL('general',args= []), dónde args son los argumentos o vars={'var':'algo'}
--
Pablo Martín Mulone (mar...@tecnodoc.com.ar)
Paraná, Entre Ríos, Argentina (CP 3100).

My blog: http://martin.tecnodoc.com.ar
Expert4Solution Profile: http://www.experts4solutions.com/e4s/default/expert/6


nicolás rosbaco

unread,
Feb 8, 2011, 9:57:08 AM2/8/11
to web2py-...@googlegroups.com
Mucha gracias. Había leído lo de LOAD hace un tiempito, pero en ese momento no me dí cuenta como me podía servir. Me vino super al pelo...

Respecto de ejecutar la función al inicio me anduvo bien (voy a porbar utilizar LOAD porque creo que le dará prolijidad al código)... pero te hago un par de preguntas:

1) La primera: Yo solucioné lo de la función de este modo:

<script>
jQuery(document).ready(function(){
   jQuery('#listadoPosiciones').html(ajax('{{=URL('ordenListadoClasificacion', args=['general', str(ano)])}}', ['orden'], 'listadoPosiciones'));
});
</script>

donde: #listadoPosiciones es el ID del DIV que se modifica (escribe); ordenListadoClasificación es una función que esta definida en default.py y simplemente devuelve un string que contiene todo el html del div que quiero escribir.

El tema: la verdad que me parece que esa llamada a ajax esta de más. A mi me alcanzaría con ejecutar la función del controlador y recepcionar el string que devuelve, ya que con jQuery modifico dinámicamente el contenido html del tag (DIV)... algo así:

jQuery('#listadoPosiciones').html(MIfuncion(parámetros));

La pregunta: ¿cómo puedo ejecutar la función que se encuentra en default sin invocar una vista? ¿se entiende?


gracias
Reply all
Reply to author
Forward
0 new messages