Это довольно легко сделать (хотя я бы посоветовал вам сделать это незаметно с помощью шаблона Event.observe()
, описанного в http://prototypejs.org/api/event).
Вот решение, которое не следует поощрению, которое я только что дал (ради того, чтобы не переходить на большую часть вашего кода и позволить вам легко увидеть, что он делает.).
echo " <a href='my.php?action=show&id=".$fid."'
onclick=\"Ajax.Request(this.href); return false;\"> ";
echo "" .$fname."</a> ";
Что может быть лучше, так это добавить класс к этой ссылке, что-то вроде 'xhr', а затем ненавязчиво найти все ссылки с классом xhr и наблюдать за щелчком, а затем запустить запрос XMLHttpRequest . Вот как я это сделаю.
Итак, в вашем теле измените элемент ссылки на:
echo '<a href="my.php?action=show&id=' . $fid .'" class="xhr">' . $fname . '</a> ';
Теперь где-нибудь в вашей области скриптов сделайте:
<script type="text/javascript" charset="utf-8">
....
// Wait for the DOM to be loaded (http://prototypejs.org/api/document/observe)
document.observe('dom:loaded',function(){
// Use Prototype's $$ utility method to find all the link's
// with class xhr (http://prototypejs.org/api/utility/dollar-dollar)
$$('a.xhr').each(function(link_element){
// Iterate through each of these links and attach the following observer.
link_element.observe('click', function(click_event){
Ajax.Request(link_element.href);
// stop() will cancel the click-event from "doing" anything else
// http://prototypejs.org/api/event/stop
click_event.stop();
});
});
});
</script>
Что происходит сейчас, это после загрузки DOM (но до отображения страницы) ваш наблюдатель кликов будет прикреплен ко всем элементам ссылки с классом 'xhr'. Он захватывает событие click, запускает запрос XMLHttpRequest и не позволяет событию предварительно выполнить действие по умолчанию (в данном случае по ссылке на другую страницу), вызывая метод stop () .