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.