вчера решил для себя аналогичную задачу (заменить элемент страницы данными, полученными через ajax. Решение, может быть и не изящное, но рабочее и потребовало минимума правок (1 js, который при желании прям в шаблон выносим) и правка самой страницы шаблона.
Выглядит примерно так. На странице куска шаблона изначально делаем проверку
<?php if(isset($_POST['showcontacts'])) { ?> что вернём при обработке запроса
<?php } else { ?>
всё содержимое шаблона
ну и js
$('.js-showcontacts').on('click',function() {
var parent = $(this).closest('.hidden-contacts');
$.ajax({
type : 'POST',
data : "showcontacts=true",
url : document.location.href,
success : function(html) {
parent.html(html);
}
});
return false;
});
Конечно, можно взять из запроса конкретно определённые данные и переменные, но мне надо было заменить целый кусок кода и то, что я написал вроде как работает. Клик на элемент .js-showcontacts отправляет post на текущую страницу с доп ключом, который в самом начале этой страницы проверяется и выдаёт нужный результат :)