我需要在Django模板中使用jQuery进行Ajax分页。
我的模板中包含以下代码:
<script type="text/javascript">
$(document).ready(function() {
$("#next-page").click(function() {
var page = {{ vms.next_page_number }};
$("#vms").html(' ').load (
'{% url virtualmachine-list %}?page=' + q );
});
});
</script>
[code omitted]
<table>
<thead>
[code omitted]
</thead>
<tbody id="vms">
{% for vm in vms.object_list %}
[code omitted]
{% endfor %}
</tbody>
</table>
[code omitted]
{% if vms.has_next %}
<!--<a href="?page={{ vms.next_page_number }}" id="next-page">Next</a>-->
<a href="#" id="next-page">Next</a>
{% endif %}
</span>
和我的看法:
def list_(request):
vms = VirtualMachine.objects.all()
paginator = Paginator(vms, 10)
page = 1
if request.is_ajax():
query = request.GET.get('page')
if query is not None:
page = query
try:
vms = paginator.page(page)
except (EmptyPage, InvalidPage):
vms = paginator.page(paginator.num_pages)
return render_to_response('virtual_machine/list.html', {
'vms': vms,
},
context_instance=RequestContext(request),
)
因此,每当我按“下一步”时,它实际上会发出Ajax请求,但数据不会在表中呈现。
对于分页,使用django.core.paginator,我真的很愿意在可能的情况下坚持使用。
您能看到代码缺失/错误吗?
我没有发现错误,但下面向您展示如何解决此任务。我认为您可以轻松地使其适应您的需求。
jQuery ajax部分:
<script type="text/javascript">
function ajax_get_update()
{
$.get(url, function(results){
//get the parts of the result you want to update. Just select the needed parts of the response
var table = $("table", results);
var span = $("span.step-links", results);
//update the ajax_table_result with the return value
$('#ajax_table_result').html(table);
$('.step-links').html(span);
}, "html");
}
//bind the corresponding links in your document to the ajax get function
$( document ).ready( function() {
$( '.step-links #prev' ).click( function(e) {
e.preventDefault();
url = ($( '.step-links #prev' )[0].href);
ajax_get_update();
});
$( '.step-links #next' ).click( function(e) {
e.preventDefault();
url = ($( '.step-links #next' )[0].href);
ajax_get_update();
});
});
//since the links are reloaded we have to bind the links again
//to the actions
$( document ).ajaxStop( function() {
$( '.step-links #prev' ).click( function(e) {
e.preventDefault();
url = ($( '.step-links #prev' )[0].href);
ajax_get_update();
});
$( '.step-links #next' ).click( function(e) {
e.preventDefault();
url = ($( '.step-links #next' )[0].href);
ajax_get_update();
});
});
</script>
模板html部分:
<div class="pagination">
<span class="step-links">
{% if object_list.has_previous %}
<a id="prev" href="?{{ urlquerystring_previous_page }}">previous</a>
{% else %}
<span style="visibility:hidden;">previous</span>
{% endif %}
<span class="current">
Page {{ object_list.number }} of {{ object_list.paginator.num_pages }}.
</span>
{% if object_list.has_next %}
<a id="next" href="?{{ urlquerystring_next_page }}">next</a>
{% else %}
<span style="visibility:hidden;">next</span>
{% endif %}
</span>
</div>
<form class="" id="action-selecter" action="{{ request.path }}" method="POST">
<div id="ajax_table_result">
<table class="w600" cellspacing="5">
<thead>
{% table_header headers %}
</thead>
<tbody>
....
问题内容: 已关闭 。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗? 更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我正在寻找一个使用jQuery,PHP和MySQL的很好的Ajax分页教程。我遇到的那些不好。 因此,如果有人可以推荐一个好的网站/教程,那就太好了。谢谢。 编辑 这是一些不好的教程。 网站1 网站2 网站3 问题答案: 这是 CakePHP的 一个教程
问题内容: 我可以通过接收到请求的xml 但不是 没有JavaScript错误,没有跨域策略问题。可能是语法错误,但是我找不到合适的教程。有什么建议吗? 问题答案: 我认为您需要纯格式:
问题内容: 我想用以下代码用jquery ajax解析JSON数组数据: 我的JSON数据是: 但是我没有任何输出…任何人请帮忙… 问题答案: 概念解释 您是否正在尝试进行跨域AJAX调用?意思是,您的服务不在同一Web应用程序路径中托管吗?您的Web服务必须支持方法注入才能执行JSONP。 您的代码看起来不错,并且如果您的Web服务和Web应用程序托管在同一域中,则该代码应该可以正常工作。 当您
问题内容: 我想以这种方式进行Ajax调用的堆栈:call(n-1)完成后,call(n)开始… 由于多种原因,我无法使用 async:false : 一些请求可能是 jsonp (最相关) 我还有其他一些可能同时起作用的ajax请求。 浏览器被阻止 我无法以这种方式链接我的请求: 因为请求的数量和参数是根据用户输入动态创建的。 一个小例子说明了我的问题。 您将看到服务器响应顺序是随机的,我要实现
我想在Jquery函数和Tomcat中的servlet之间建立通信。 我用浏览器测试了servlet,它很好。当我尝试HTML/JS应用程序并单击eclipse控制台中的按钮时,指令system.out.println(getBody(request))显示的消息;“Post Call”但我在浏览器中得到了错误警报。因此,ajax函数成功地调用了servlet中的post方法,但是servlet不