Web2Py Ajax附加到DIV

时间:2013-02-20 18:40:21

标签: jquery python ajax append web2py

我正在尝试使用AJAX将内容附加到我的div“this_div”。

HTML:

<a href='#' onclick="ajax('append?what=first',
['content'],'this_div')">click</a>

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

控制器:

def append():
    if request.vars.what == "first":
        something = "ABC"
    else:
        something = "DEF"

return "<script>jQuery('#this_div').append('"+something+"')</script>"

这会将“something”的内容加载到div,但它不会保留以前的内容。谁能解释为什么它会像那样表现呢?我是Python / Web2Py / AJAX组合的新手。

谢谢!

1 个答案:

答案 0 :(得分:3)

问题是ajax()函数本身会覆盖this_div的内容,因为这是指定的目标(即,它用返回的<script>元素替换DIV内容,然后返回将文本附加到DIV)。如果你想追加而不是覆盖,你可以通过Javascript来实现,但在这种情况下你需要指定“:eval”作为目标:

<a href='#' onclick="ajax('append?what=first', [], ':eval')">click</a>

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

控制器:

def append():
    if request.vars.what == "first":
        something = "ABC"
    else:
        something = "DEF"
    return "jQuery('#this_div').append('%s');" % something

注意,在这种情况下不需要<script>标记 - 只需返回要执行的Javascript。此外,如果您的append()函数不使用“content”输入,ajax()的第二个参数可能只是一个空数组(即[])而不是['content'] }。