Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django ajax load()-是否可以使用返回的django视图上下文的一部分更新两个或多个div?_Django_Jquery - Fatal编程技术网

django ajax load()-是否可以使用返回的django视图上下文的一部分更新两个或多个div?

django ajax load()-是否可以使用返回的django视图上下文的一部分更新两个或多个div?,django,jquery,Django,Jquery,我正在使用load方法替换一个div的内容 $( '#ajax_tbody_result' ).html( ' ' ).load(url); 现在我想知道是否可以调用url,获取返回值,将它们拆分,并更新模板中的两个或多个div 因此,解决方案是从返回的django上下文中获取一些对象,将其拆分并使用正确的内容更新div。这是返回的上下文: context = { 'object_list' : contact_list_page,

我正在使用load方法替换一个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,
        } 
编辑:解决方案:

将jQueryGet请求的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步骤链接的范围),并更新页面中相应的对象。

使用

$.get(url, [{key:value}], function(data){
    //data is the entired contents of going to that url.
    //split it up here and do your stuff

    $('#div1').html(piece1);
    $('#div2').html(piece2);
});


编辑:更仔细地看你的问题,你还需要为你用
url
调用的视图创建一个django模板,该模板将为javascript函数提供所有你想要的信息。

我觉得给出这个答案像是打破了记录,但你真的想检查一下。它满足了你的要求,而且还增加了500%。检查示例并感到惊讶。我不会轻易使用这个词,但这是一个真正优雅的解决方案。

我认为这更像是一个jquery问题,而不是django问题。更简单的方法可能是创建一个url->view->模板,以查看每个div的显示方式。您可以分为两个视图,或者使用查询字符串来确定在一个视图中执行的操作。然后您可以返回到.load()方法并为相应的div加载相应的url。是的,我考虑过这个问题。但这将导致两个ajax调用,对我来说,这似乎不是很整洁。我刚才遇到了一些问题。使用get或getJSON更好吗?如果您在javascript中处理JSON,那么使用getJSON。但您必须使视图返回JSON。django有一些返回JSON格式数据的函数,但我认为这在这种上下文中不起作用。(这将取决于您需要的上下文的哪些部分)好的,谢谢。我的视图返回ajax调用的模板。代码的一部分:.html(第1段)。我是在django上下文上引用还是在返回模板的一部分上引用?我的视图是这样返回的:返回render_to_response(模板、上下文、上下文_instance=RequestContext(请求)),您能用到ajax/get函数的url输出更新您的问题吗?数据=该输出。然后你可以把它分成第一和第二部分,或者你需要把它分成几部分,没错。我只是不知道如何操作返回的数据对象,它实际上是一个html呈现的django模板;我很少再这样用了。在jQuery中使用taconite只需要创建URL映射和视图来处理请求。因为响应是XML格式的,所以很容易创建格式错误的响应,所以我有一个支持类将其与Django一起使用。给我发电子邮件(在我的个人资料中列出),我会给你发一份副本。文件顶部有一些轻量级文档。