Здравствуйте уважаемы комьюнити!
Возникла проблема. Пишу модуль, посредством которого производится обработка ajax-запросов.
Код модуля:
<?php
function hdbk_init() {
$page = 'hdbk';
$this_page = request_uri();
if ($page && strstr($this_page, $page) !== FALSE) {
drupal_add_js(drupal_get_path('module', 'hdbk') .'/js/hdbk.js');
}
}
function
hdbk_menu(){
$items = array();
$items['hdbk'] = array(
'title' => t('Телефонный справочник'),
'page callback' => 'hdbk_page_ajax',
'type' => MENU_CALLBACK,
'access arguments' => array('access content'),
);
return $items;
}
function
hdbk_page_ajax($argument) {
return "Hello World!";
}
?>
Ява скрипт код:
Drupal.behaviors.hdbk = function () {
$(".hdbk_link").click(function(){
$("#hdbk_result").load("/hdbk");
});
}
$(".hdbk_link").click(function(){
$("#hdbk_result").load("/hdbk");
});
}
Проблема в том, что при клике на элементе ".hdbk_link", в "#hdbk_result" грузится вся страница сайта, а не просто нужный результат. Ткните носом пожалуйста начинающего друпалера!
Комментарии
не return а echo + exit
http://www.drupal.ru/node/62330
запрос отрабатывается, но в результирующий блок выводится вся страница сайта с результатом а не просто результат
может в хуке меню нужно прописать какой-нибудь параметр, говорящий друпалу, что это аякс запрос и отрисовывать сайт не нада?
тихабля.
return false где?
матчасть не учим?
$("#hdbk_result").load("/hdbk");
return false;
});
так? не помогает((
ну а выше исправить, конечно забыли с
return "Hello World!";
}
на
print "Hello World!";
exit();
}
а вместо load я использую связку get и html
MaNaX же правильно сказал
print "Hello World!";
exit(0);
}
exit категорически не нужен
Спасибо за ответы, вариант с echo-exit работает!
Можете пояснить?
exit прерывает выполнение скрипта, всё что после него не выполнится, в том числе служебные функции на завершающей стадии бутстрапа
Как же быть?(
не использовать exit, это же очевидно
и какие же ещё служебные функции должен выполнять скрипт формирующий ajax ответ? сомневаюсь, что нужен будет hook_exit и hook_node для ajax запроса
все те же самые, что и формирующий любой другой ответ
согласен с dylan, спасибо за ответы!