django ajax load () - возможно ли обновить два или более div с частью возвращенного контекста представления django? - PullRequest
1 голос
/ 09 января 2010

Я использую метод загрузки для замены содержимого ОДНОГО деления.

$( '#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,
        } 

Редактировать: Решение:

Разделите ответ html-запроса jquery get на его части и обновите соответствующие части в .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");

Объект результатов - это шаблон django, отображаемый в .html. Из этого возврата .html я беру нужные мне данные (таблицу и диапазон с пошаговыми ссылками id) и обновляю соответствующие объекты на своей странице.

Ответы [ 2 ]

2 голосов
/ 09 января 2010

использование

$.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);
});

http://docs.jquery.com/Ajax/jQuery.get

edit: если присмотреться более внимательно к вашему вопросу, вам также потребуется создать шаблон django для представления, которое вы вызываете с помощью url, который предоставит всю необходимую информацию для функции javascript.

0 голосов
/ 09 января 2010

Я чувствую себя побитой записью этого ответа, но вы действительно хотите проверить jQuery Taconite Plugin . Он делает то, что вы просили, и на 500% больше. Ознакомьтесь с примерами и удивитесь. Я не использую это слово слегка, но это действительно элегантное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...