>
>
> function serialRead() {
> var msg = "<p>{{=serialRead()}}</p>";
> $('#console').append(msg);
> }
>
You are attempting to mix Python (which runs on the server) with Javascript
(which runs on the client). The above is a template that web2py converts
into HTML and sends to the browser. When the template is executed,
{{=serialRead()}} is replaced with the value returned by calling the
serialRead() function -- so the Javascript sent to the browser simply
contains a fixed value in that place (i.e., the server-side serialRead
function is called only once, when the page is initially rendered by
web2py). If you want to repeatedly call a Python function on the server
from the client (without completely reloading the page), you'll need to
make Ajax calls to the server. For details on that, see
http://web2py.com/books/default/chapter/29/11.
If you move your serialRead() function to the default.py controller, you
could do something like this:
function serialRead() {
ajax("{{=URL('default', 'serialRead')}}", [], "console");
};
The ajax call makes a request to the /defaul/serialRead URL and places the
returned result into the element with id="console".
Anthony