como introducir sentencia jQuery dentro de una función (en limpio)

76 views
Skip to first unread message

nicolás rosbaco

unread,
Feb 26, 2011, 12:44:47 PM2/26/11
to web2py-...@googlegroups.com
(aclaración y disculpa) No se cansa de repetir Alivertti que no es tan importante acertar en las respuestas como en las preguntas... a mi me acaba de pasar... pregunto como el orto y desoriento a propios y ajenos... va de nuevo: borrón y cuenta nueva... intento una generalización del problema a ver si así me explico correctamente.
----------------------------------------------
Pregunta 1:---------------------------

¿Cómo puedo hacer para introducir una instrucción/linea jQuery dentro de una función definida en el controlador?

Ej: tengo una función que me interesa modifique un DIV determinado de la vista... claro: cuándo es ejecutada la función.

Si yo introduzco la linea (siguiente) en la función me devuelve que jQuery no se conoce o no esta definida.

    if form.accepts(request.vars, session):
        jQuery('#carrito').html('nada')

global name 'jQuery' is not defined

---------------------------------
Pregunta 2:----------------------------
Si dentro de un script hago esto:
<script>
$('#no_table_codbarras').change(function() {
    var n=3;
    {{registros=db(db.productos.id==n).select().first()}}
    {{reg=registro.descripcion}}
    alert(reg);
});
</script>

me devuelve un error de que n no esta definido.
NameError: name 'n' is not defined

¿cómo puedo solucionarlo?
--
"En un país colonial las oligarquías son las dueñas de los diccionarios" (John William Cooke)

DenesL

unread,
Feb 26, 2011, 3:41:18 PM2/26/11
to web2py-usuarios


On Feb 26, 12:44 pm, nicolás rosbaco <antiya...@gmail.com> wrote:
> (aclaración y disculpa) No se cansa de repetir Alivertti que no es tan
> importante acertar en las respuestas como en las preguntas... a mi me acaba
> de pasar... pregunto como el orto y desoriento a propios y ajenos... va de
> nuevo: borrón y cuenta nueva... intento una generalización del problema a
> ver si así me explico correctamente.
> ----------------------------------------------
> Pregunta 1:---------------------------
>
> ¿Cómo puedo hacer para introducir una instrucción/linea jQuery dentro de una
> función definida en el controlador?
>
> Ej: tengo una función que me interesa modifique un DIV determinado de la
> vista... claro: cuándo es ejecutada la función.
>
> Si yo introduzco la linea (siguiente) en la función me devuelve que jQuery
> no se conoce o no esta definida.
>
>     if form.accepts(request.vars, session):
>         jQuery('#carrito').html('nada')
>
> global name 'jQuery' is not defined
>

El lenguaje del controlador es Python.
jQuery(...) es una sentencia de JavaScript (JS).
Python no conoce de JS y viceversa.

Para comprender otros detalles lee mis respuestas en el hilo
http://groups.google.com/group/web2py-usuarios/browse_thread/thread/b573668ca148edf9#

> ---------------------------------
> Pregunta 2:----------------------------
> Si dentro de un script hago esto:
> <script>
> $('#no_table_codbarras').change(function() {
>     var n=3;
>     {{registros=db(db.productos.id==n).select().first()}}
>     {{reg=registro.descripcion}}
>     alert(reg);});
>
> </script>
>
> me devuelve un error de que n no esta definido.
>
> NameError: name 'n' is not defined

Nuevamente hay una mezcla de codigo Python y JS.
n es una variable JS y todo lo que va entre corchetes dobles es codigo
Python.
Ninguno de los dos lenguajes tiene conocimiento del otro.

Ademas es muy importante entender que todo en web2py es codigo python
aunque no lo parezca, como es el caso de las vistas, las cuales
aparentan ser codigo HTML y JS (entre otros) pero realmente son
convertidas en programas python que son ejecutados para producir el
resultado.

nicolás rosbaco

unread,
Feb 26, 2011, 6:11:58 PM2/26/11
to web2py-...@googlegroups.com
esta mal el enlace... en ambas preguntas apunta a un hilo sobre el que estuvimoscharlando...

nicolás rosbaco

unread,
Feb 26, 2011, 6:58:50 PM2/26/11
to web2py-...@googlegroups.com
El 26 de febrero de 2011 17:41, DenesL <dene...@yahoo.ca> escribió:

Ok. lo intuía. Ahora me lo confirmaste...

Ademas es muy importante entender que todo en web2py es codigo python
aunque no lo parezca, como es el caso de las vistas, las cuales
aparentan ser codigo HTML y JS (entre otros) pero realmente son
convertidas en programas python que son ejecutados para producir el
resultado.

Pero bueno: ¿se pueden mezaclar? ¿cómo sería?

Gracias

> ¿cómo puedo solucionarlo?
> --
> "En un país colonial las oligarquías son las dueñas de los diccionarios"
> (John William Cooke)

Juan Carlos

unread,
Nov 22, 2016, 5:31:09 AM11/22/16
to web2py-usuarios
utiliza el ayudante de web2py, SCRIPT("")

Marco Mansilla

unread,
Nov 22, 2016, 11:44:57 AM11/22/16
to web2py-...@googlegroups.com

Creo que lo que buscas es:

    if foo:
        response.js = "jQuery('selector').html('contenido html')"

Ahí mismo podes tener varias lineas jquery separadas por punto y coma.

Espero que sea útil.

Reply all
Reply to author
Forward
0 new messages