【发布时间】:2010-01-09 13:30:18
【问题描述】:
我是用load方法替换ONE div的内容
$( '#ajax_tbody_result' ).html( ' ' ).load(url);
现在我想知道是否可以调用 url,获取返回值,将它们拆分并更新模板中的两个或多个 div。
因此,解决方案是从返回的 django 上下文中获取一些对象,将其拆分并使用正确的内容更新 div。这是返回的上下文:
context = {
'object_list' : contact_list_page,
'headers': headers,
'filter_by_classification_form': filter_by_classification_form,
'filter_by_address_form': filter_by_address_form,
'filter_by_company_form': filter_by_company_form,
'urlquerystring_previous_page' : urlquerystring_previous_page,
'urlquerystring_next_page' : urlquerystring_next_page,
}
编辑:解决方案:
将 jquery get 请求的 html 响应拆分为多个部分,并更新 .html 中的相应部分。你可以这样做:
$.get(url, function(results){
var table = $("table", results);
var spans = $("span.step-links", results);
//update the ajax_table_result with the return value
$('#ajax_table_result').html(table);
$('.step-links').html(spans);
}, "html");
结果对象是渲染为 .html 的 django 模板。从这个 .html 返回我获取我需要的东西(表格和带有 id 步骤链接的跨度)并更新我页面中的相应对象。
【问题讨论】:
-
我认为这更像是一个 jquery 问题而不是 django 问题。
-
更简单的方法可能是创建一个 url->view->template 来查看每个 div 的外观。您可以分成两个视图,或使用查询字符串来确定在一个视图中完成的操作。然后你可以回到你的 .load() 方法并为适当的 div 加载相应的 url。
-
是的,我想过这个。但这会导致两个 ajax 调用,这对我来说似乎不是很整洁。