0
我有一個WordPress站點,至極是崗位的基礎上,但我想我的過濾後阿賈克斯。加載內容與阿賈克斯
棘手的部分是,如果我從想過濾器可以說,「案件」到「攝影」我對這個兩個不同的模板。
我可以一點點的PHP管理這一點,並改變the_template_part。 但是,這使得頁面重新加載,我不想做。
我一直試圖做一個Ajax請求完成過濾功能。
我的.js
$('a[rel="filter"]').click(function() {
var filter = $(this).attr('id');
$('.checked').removeClass('checked');
$(this).parent().addClass('checked');
$.ajax({
url: '/wp-admin/admin-ajax.php',
data: window.location = '#?filter=' + filter,
success: function() {
$('#content').children().fadeOut(549);
$('#content').html(data).fadeIn(549);
}
});
console.log('Filter ' + $(this).attr('id') + ' clicked');
});
這是改變template_part在我的index.php
$type = ($_GET['filter'] == '') ? 'projects' : $_GET['filter'];
<?php
get_template_part($type);
?>
能否實現這一目標還是做我需要考慮這在PHP?
這只是返回實際ADRESS以純文本
$('a[rel="filter"]').click(function() {
var filter = $(this).attr('href');
$('.checked').removeClass('checked');
$(this).parent().addClass('checked');
$.ajax({
url: 'wp-admin/admin-ajax.php',
//url: 'url' + filter,
data: {
filter: filter
},
success: function(html) {
$('#content').children().fadeOut(549);
$('#content').html(filter).fadeIn(549);
console.log(filter);
console.log("Success");
},
error: function() {
console.log('No can do')
}
});
console.log('Filter ' + filter + ' clicked');
return false;
});
如果我有3頁不同querys和模板至極代表(案例,攝影和運動),至極的我要讓過濾的頭版。我正在一個網頁上工作。
希望這可以幫助。
東西肯定是看着你的'數據有點奇怪:window.location的= '?#過濾器=' + filter'線。首先,這是您發送的數據,即整個字符串。其次,在那裏做什麼「=」?你更希望用'data:{page:'blah',filter:filter}'替換它。第三,看起來你沒有在你的成功回調中提供「數據」變量。 '成功:函數(數據){'是正確的。 – h2ooooooo
我應該補充說,你的頁面重新加載的主要原因可能是由於一個JavaScript錯誤 - 嘗試檢查你的JavaScript控制檯的錯誤。 – h2ooooooo
嗯...試過了,不幸的是,這不工作 – Jonas