В моем проекте у меня есть столбец с несколькими фильтрами с помощью jQuery Ajax Calls, чтобы уменьшить количество продуктов, отображаемых в main.php <div id="target">
. Работает нормально, но, например, после сортировки результатов или щелчка по нумерации страниц в файле ответов main.php, мне нужно иметь возможность выполнить новое действие фильтра в столбце фильтра с параметрами $ _GET последнего вызова Ajax main.php
, Эти параметры хорошо отображаются на вкладке Firebug Net - вкладка XHR - вкладка Параметры.
Но я не могу найти способ извлечь параметры и поместить их в мою функцию, которая запускает Ajax-вызов:
function updateStatus(content_show, data) {
jQuery.ajax({
method: "get",
url: content_show,
data: data,
beforeSend: function(){
jQuery("#target").html('<p><img src="images/ajax_load.gif" /></p>');
}, //show loading just when link is clicked
success: function(html) {
// update status element
jQuery('#target').show("slow");
jQuery('#target').html(html);
}
});
}
В моем файле фильтра у меня есть функция, чтобы установить и снять флажки и запустить вызов ajax:
function check_them(obj,URL) {
var getstr = "";
var man_id_selected ="";
for (i=0; i<obj.getElementsByTagName("input").length; i++) {
if (obj.getElementsByTagName("input")[i].type == "checkbox") {
if (obj.getElementsByTagName("input")[i].checked) {
getstr = "" + obj.getElementsByTagName("input")[i].name + "=";
man_id_selected += obj.getElementsByTagName("input")[i].value + "_";
} else {
<!-- getstr += obj.getElementsByTagName("input")[i].name + "=&";-->
}
}
}
getUrlStatus('main.php', function(status) { // try to find $_GET parameters of main.php
alert(status);
});
updateStatus(URL, getstr+man_id_selected);
}
Здесь я также попытался найти параметры XHR с помощью:
function getUrlStatus(url, callback) {
jQuery.ajax({
url: url,
complete: function(xhr) {
callback(xhr.status);
}
});
}
Но последний из курса вернет только статус 200, а не параметры.
Редактировать
После дополнительного чтения и тестирования я почти решил проблему, изменив исходный код PHP и функции для правильного форматирования функции updateStatus с обратным вызовом:
function updateStatus(url, base_url, new_parameters, old_parameters) {
jQuery.ajax({
method: 'get',
url: base_url,
data: new_parameters,
beforeSend: function(){
jQuery("#target").html('<p><img src="images/ajax_load.gif" /></p>');
}, //show loading just when link is clicked
complete: function(){
jQuery("#target").hide("fast");
}, //stop showing loading when the process is complete
success: function(html) {
// update status element
jQuery('#target').show("slow");
jQuery('#target').html(html);
callback(this.url)
}
});
}
Теперь у меня только небольшая проблема с получением и вызовом нового URL-адреса в $ url в PHP. Я подробно остановлюсь на этом и, возможно, опубликую новую тему.