<?
<script src="/static/js/jquery.js"></script>
<div id="preload" class="preload"></div>
<div id="content">
<a href="#" id="/ajax.html" onclick="link();">Test</a>
</div>
<script>
function link() {
$("#preload".html('Загружаем...');
var url = $("a".attr("id"
$.ajax({
url: url,
cache: false,
success: function(html) {
$("#content".html(html);
$("div.preload".remove();
}
});
}
</script>
?>
При клике подгружается содержимое ajax.html
Ajax.html
<?
.....
<div id="12345">....</div>
.....
?>
Соответственно загружается весь файл, а необходимо загрузить только контент с идентификатором 12345
Ajax возвращает текст, а не html.
Вижу два выхода.
1. После получения ответа, залить контент в общий див, оттуда стянуть нужный див (с id типа 12345) и извлеть его содержимое. Далее сразу чистим общий див.
2. Простой и удобный вариант.
Передать через GET/POST название нужного идентификатора, возможно id записи в БД. И AJAX вернет запись по этой выборке.
bibilink, Второй вариант неподходящий, т.к отсутствует работа с PHP, а с первым поработаю. Спасибо.
Денис Павлик, только это нужно сделать шаг за шагом сразу.
Оно в память запишется (общий контент в див), но чтобы не успело отобразится.
bibilink, вот на Stack пример кинули и он работает, только как, если ты говоришь, что ajax возвращает текст, а не HTML
<?
<div id='content'>
<a href="#" onclick='$(this).load("ajax.html #12346"'>Load</a>
</div>
?>
ajax.html
<?
<div id="12345">qeqqe</div>
<div id="12346">qwert</div>
?>
Загляни внутрь метода load.
Говорю как оно есть в чистом js.