#web2py
#web2py
Вопрос:
Я использую функцию web2py ajax, например:
В index.html
{{=INPUT(_name='total_buy', _onkeyup=
"ajax('key',['total_buy'], ':eval')")}}
<div id="target"></div>
и в default.py
def key():
return "jQuery('#target').html('%s');" % repr(float(request.vars.total_buy))
Это работает отлично. Когда число вводится в поле ввода, оно немедленно передается целевому div.
Однако, когда я копирую это на другую страницу, он перестает работать. Я не вижу, чтобы номер ввода повторялся.
Например, я перемещаю код с index.html чтобы plan.html и оставьте все остальное нетронутым, я продолжаю видеть эхо на странице индекса, но не на странице нового плана.
Взглянув на журнал сервера, я вижу это:
127.0.0.1, 2011-10-15 13:55:50, POST, /medaim/default/key, HTTP/1.1, 200, 0.047000
127.0.0.1, 2011-10-15 13:55:52, POST, /medaim/default/key, HTTP/1.1, 200, 0.047000
127.0.0.1, 2011-10-15 13:55:52, POST, /medaim/default/key, HTTP/1.1, 200, 0.078000
127.0.0.1, 2011-10-15 13:55:59, GET, /medaim/default/plan/1, HTTP/1.1, 200, 0.094000
127.0.0.1, 2011-10-15 13:56:01, POST, /medaim/default/plan/key, HTTP/1.1, 500, 0.250000
127.0.0.1, 2011-10-15 13:56:01, POST, /medaim/default/plan/key, HTTP/1.1, 500, 0.218000
127.0.0.1, 2011-10-15 13:56:02, POST, /medaim/default/plan/key, HTTP/1.1, 500, 0.265000
Похоже, что со страницы плана он вызывает /medaim/default/plan/key, а не /medaim/default/key
Как мне с этим справиться?
Ответ №1:
Попробуйте
{{=INPUT(_name='total_buy', _onkeyup=
"ajax('%s', ['total_buy'], ':eval')" % URL('default', 'key'))}}