我正在使用我网站上的过滤器。用户可以一次选择多个过滤器,结果就像任何电子商务网站一样。我可以使用ajax GET请求获取结果。每次过滤器更改时我都在使用跟随功能。
function filterCandidates() {
var edu = [];
var salary_exp = [];
var jobtype = [];
var url = window.location.href;
//var tech = [];
var gender = [];
var sorting = $('#sorting').val();
$('input.edu:checked').each(function () {
var ed = $(this).val();
edu.push(ed);
});
$('input.sldr').each(function () {
var t_sc = $(this).val();
salary_exp.push(t_sc);
});
$('input.gndr:checked').each(function () {
var c_sc = $(this).val();
gender.push(c_sc);
});
$('input.jtype:checked').each(function () {
var jt = $(this).val();
jobtype.push(jt);
});
var edu_str = '';
if (edu.length > 0) {
edu_str = '&edu[]=' + edu;
}
var gender_str = '';
if (gender.length > 0) {
gender_str = '&gender[]=' + gender;
}
var jobtype_str = jobtype.length > 0 ? '&jobtype[]=' + jobtype : '';
var salaryexp_str = salary_exp.length > 0 ? '&salary[]=' + salary_exp : '';
var sort_str = sorting != '' && typeof sorting !== 'undefined' ? '&sort=' + sorting : '';
var addition_url = edu_str + gender_str + +salaryexp_str + jobtype_str + sort_str;
var data = {};
$('#loading-img').show();
$.ajax({
url: url + addition_url,
data: data,
cache: false,
type: 'get',
beforeSend: function (xhr) {
var token = $('meta[name="csrf_token"]').attr('content');
if (token) {
return xhr.setRequestHeader('X-CSRF-TOKEN', token);
}
},
success: function (data) {
if (data === 'No Results Found') {
$('#search_res').hide();
$("#no_candidate").removeClass('hidden');
} else {
$('#search_res').show().html(data);
$("#no_candidate").addClass('hidden');
}
$('#loading-img').hide();
window.scrollTo(0, 0);
//$('#search_res').load(document.URL+" #search_res");
},
error: function (xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
});
}
我想知道电子商务网站如何在过滤器(复选框或选择)更改中传递URL中的参数。我真的很感激任何帮助。
答案 0 :(得分:0)
是否要将所有过滤器值添加到浏览器地址栏中当前显示的网址?
如果是这样,您应该将过滤器的每次更改保存到 window.location.hash 。例如window.location.hash ='gender [] = male& edu [] = foo';将www.example.com#gender [] = male& edu [] = foo添加到您的网址。
然后在执行ajax请求之前,可以将window.location.hash的值添加到ajax url并请求过滤后的数据。
因此网店用户可以分享网址www.example.com#gender [] = male& edu [] = foo,当有人打开网站时,您必须检查网址中是否已定义过滤器。如果是这样,你必须立即执行ajax调用。