Немного запутался при работе с ajax.
Конкретно - насчет того, как и куда возвращается результат.
Часть кода
$.ajax({
url: 'actions.php?show,success: function(data){$('#input_area').html(data);}
});
Как я понимаю, результат будет возвращаться в элемент с id=input_area.
Как он туда будет возвращаться?
Я поясню
Вот функция выводящая html код
function show($show)
{
echo '<div id="input_area"><a href="#" class="link">Link</a></div>';
}
А вот код страницы
<div><?php echo show(''); ?></div>
Итого html код
<div>
<div id="input_area">
<a href="#" class="link">Link</a>
</div>
</div>
Что будет при нажатии на ссылку? Если есть js код выше?
Будет ajax запрос с передачей параметра show, который вызовет функцию show (я этот код тут не писал - не важно).
Вообщем будет вызвана функция, которая вернет echo.
А там есть div id="input_area". Но у нас на странице уже есть div id="input_area" (первоначальный вызов ф-ции).
Итого ошибка? В блок с id="input_area" должен загрузится код, содержащий блок с id="input_area".
Но нет - мы получим ровно один div с id="input_area" и ссылкой. Что произошло? Куда произошла загрузка?
А есть и более простой и понятный вариант.
Вот функция выводящая html код
function show($show)
{
echo '<a href="#" class="link">Link</a>';
}
А вот код страницы
<div id="input_area"><?php echo show(''); ?></div>
И html код и результат аналогичен.
Куда и как происходит загрузка (ответ) в первом случае и какой из вариантов (определить id дива в загружаемой ф-ции или в html коде страницы вне зависимости от ф-ции) лучше?