2012-05-30 4 views
0

У меня есть сайт WordPress, который является базовым для сообщений, но я хочу отфильтровать свой пост с помощью ajax.загрузить контент с другой страницы с помощью ajax

Сложная часть заключается в том, что если я хочу отфильтровать, можно сказать, что «случаи» для «фотографии» у меня есть два разных шаблона для этого.

Я могу управлять этим с помощью небольшого 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'); 
    }); 

И это PHP изменить template_part в моем index.php

$type = ($_GET['filter'] == '') ? 'projects' : $_GET['filter']; 
    <?php 
     get_template_part($type); 
    ?> 

Могу ли я achive это или мне нужно думать над этим?

Это просто возвращает фактический адрес в виде простого текста

$('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 и шаблоны Wich представляют (Case, фотографии и движения), которым на главной странице я хочу сделать фильтрованию. Im работает на сайте одной страницы.

Надеюсь, это может помочь.

+0

Что-то определенно выглядит немного странным в вашей строке 'data: window.location = '#? Filter =' + filter'. Прежде всего, это данные, которые вы отправляете, что означает всю строку. Во-вторых, что там делает «=»? Вы хотите заменить его 'data: {page: 'blah', filter: filter}'. В-третьих, похоже, что вы не предоставили переменную «данные» в своем обратном вызове. 'success: function (data) {' будет правильным. – h2ooooooo

+0

Я должен добавить, что основная причина, по которой перезагружается ваша страница, вероятно, связана с ошибкой javascript - попробуйте проверить вашу консоль javascript на наличие ошибок. – h2ooooooo

+0

Хмм ... Пробовал это и, к сожалению, не работает – Jonas

ответ

1

Добавить return false в конце функции щелчка.

Смежные вопросы