Web2py AJAX调用

时间:2014-04-10 12:52:03

标签: jquery ajax web2py

我有一个要求,我想从我的html表单中调用AJAX,但是我无法从layout.html继承我的视图我正在尝试使用以下代码进行简单调用:

<input name="name" onclick="ajax('echo', [], 'this_div')"/>

<div id='this_div'></div>

在控制器中,我写了以下代码:

def echo():
    pass

我只是检查它是否达到了断点,但是当我点击它时没有任何反应。

如果我遗漏了任何东西,请告诉我。

修改

我在HTML中添加了以下js文件:

<script src="{{=URL('static','js/modernizr.custom.js')}}" type="text/javascript" charset="UTF-8"></script>
<script src="{{=URL('static','js/web2py.js')}}" type="text/javascript" charset="UTF-8"></script>
<script src="{{=URL('static','js/jquery.js')}}" type="text/javascript" charset="UTF-8"></script>
<script src="{{=URL('static','js/val/dist/jquery.validate.js')}}" type="text/javascript"></script>
<script src="{{=URL('static','js/jquery-ui-1.10.3.custom.js')}}" type="text/javascript"></script>

但它仍未达到突破点。

1 个答案:

答案 0 :(得分:1)

默认的layout.html通常包括web2py_ajax.html,它本身包含jQuery和web2py.js,ajax函数都需要这两个函数。如果您没有扩展layout.html,那么您需要确保通过其他方式在页面上加载jQuery和web2py.js(最佳方法可能取决于如何生成此页面)。

此外,ajax来电应为:

ajax('{{=URL("default", "echo")}}', [], 'this_div')

始终使用URL()功能生成内部网址。仅使用'echo'会使URL相对于当前页面的URL,这不是您想要的。