Здравствуйте, помогите пожалуйста разобраться.
Есть страница в которой вывожу список документов. Подобная страница имеет к примеру такой url адрес:
GET /documents/1/2009/ HTTP/1.1" 200 126071
где
1- категория документа
2009 - год создания документа
Каждый документ в этом списке имеет кнопку по нажатию которой открывается форма редактирования. После нажатия кнопки
submit через ajax обновляется список документов. В терминале я вижу такие вот url запросы:
GET /documents/1/2009/edit/1120/ HTTP/1.1" 200 5755
POST /documents/1/2009/edit/1120/ HTTP/1.1" 200 169852
где 1120 id выбранного пользователем документа.
P.S. Последние два url запроса можно заметить лишь в терминале, а пользователю показывается лишь первый url адрес.
Проблема начинается после обновления списка. Многие скрипты у меня завязаны с основной страницей, то есть c первым url адресом. Данные скрипты не работают после того как обновил список. Все последующие ajax запросы добавляются к третьему запросу. К примеру:
GET /documents/1/2009/edit/1120/?page=2&querystring_key=page HTTP/1.1" 200 5747
Хотя должно быть вот так:
GET /documents/1/2009/?page=2&querystring_key=page HTTP/1.1" 200 5747
Видите ли вы решение в данном случаи? Не знаю в каком направлении копать. Приложил свой код.
main_template.html:
<div id="documents" class="dd">
<ol class="dd-list">
{% include page_template %}
</ol>
</div>
{% block script %}
{# START: AJAX request to endless pagination #}
<script type="text/javascript">
function activatePagination(){
$.endlessPaginate({
paginateOnScroll: true,
onCompleted: function(context, fragment) {
activateTooltip();
}
});
}
activatePagination();
</script>
{# END: AJAX request to endless pagination #}
<script src="{% static 'js/documents/crud.js'%}"></script> {# CRUD JS #}
{% endblock %}
crud.js:
$(function () {
$("#document-modal").on("submit", ".document-edit-form", function(e) {e.preventDefault(); saveForm.call(this, "Data successfully updated");});
var saveForm = function(success_message) {
var form = $(this);
var formData = new FormData(form[0]);
$.ajax({
url: form.attr("action"),
data: formData,
type: form.attr("method"),
dataType: 'json',
success: function (data) {
if (data.form_is_valid) {
// Update list of documents
$("#documents ol.dd-list").html(data.html_documents);
activatePagination();
// Hide modal
$("#document-modal").modal("hide");
// Show message to user
$("#user-action-message").fadeIn("slow");
setTimeout(function() {$("#user-action-message").fadeOut("slow");}, 2000);
}
},
cache: false,
contentType: false,
processData: false,
});
return false;
};
});