Действие Web2py ajax ':eval' не возвращает функции HTML

В моем вызове функции ajax я использую цель ': eval' для выполнения некоторых действий с контроллера. И моя функция контроллера возвращает значение с функциями HTML web2py def ajaxmessage(): return "jQuery('#divAjaxTest').html(%s);" % repr(H1('сообщение ajax')) # не возвращает никакого значения.

Но если это просто текст с repr(), то он возвращается нормально. вернуть "jQuery('#divAjaxTest').html(%s);" % repr('сообщение ajax'). #это работает нормально

Я новичок в web2py, может быть это небольшая проблема. Пожалуйста, дайте мне знать, как решить эту проблему. Заранее спасибо.


person Pradeeshnarayan    schedule 16.05.2012    source источник


Ответы (1)


Первый должен вернуть значение, но сгенерированная строка будет выглядеть примерно так:

jQuery('#divAjaxTest').html(<gluon.html.H1 object at 0x153ccd0>)

repr() не подходит для сериализации HTML-помощников web2py — вместо этого вы должны использовать str(H1('ajax message')) или H1('ajax message').xml(). Вероятно, вам также нужно заключить строку в кавычки в коде Javascript:

def ajaxmessage():
    return "jQuery('#divAjaxTest').html('%s');" % H1('ajax message').xml()
person Anthony    schedule 16.05.2012