[РЕШЕНО] Обработка ajax-запроса (грузится вся страница сайта)

Главные вкладки

Аватар пользователя evolved evolved 25 мая 2011 в 11:25

Здравствуйте уважаемы комьюнити!
Возникла проблема. Пишу модуль, посредством которого производится обработка 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", в "#hdbk_result" грузится вся страница сайта, а не просто нужный результат. Ткните носом пожалуйста начинающего друпалера!

Комментарии

Аватар пользователя evolved evolved 25 мая 2011 в 11:55

запрос отрабатывается, но в результирующий блок выводится вся страница сайта с результатом а не просто результат

Аватар пользователя evolved evolved 25 мая 2011 в 11:56

может в хуке меню нужно прописать какой-нибудь параметр, говорящий друпалу, что это аякс запрос и отрисовывать сайт не нада?

Аватар пользователя evolved evolved 25 мая 2011 в 12:42

"Ильич Рамирес Санчес" wrote:
return false где?
матчасть не учим? :)

$(".hdbk_link").click(function(){
$("#hdbk_result").load("/hdbk");
return false;
});

так? не помогает((

Аватар пользователя dylan dylan 25 мая 2011 в 14:31

ну а выше исправить, конечно забыли с

function hdbk_page_ajax($argument) {
    return "Hello World!";
}

на

function hdbk_page_ajax($argument) {
    print "Hello World!";
    exit();
}

а вместо load я использую связку get и html

Аватар пользователя xxandeadxx xxandeadxx 25 мая 2011 в 16:46

exit прерывает выполнение скрипта, всё что после него не выполнится, в том числе служебные функции на завершающей стадии бутстрапа

Аватар пользователя dylan dylan 27 мая 2011 в 8:23

и какие же ещё служебные функции должен выполнять скрипт формирующий ajax ответ? сомневаюсь, что нужен будет hook_exit и hook_node для ajax запроса

Аватар пользователя xxandeadxx xxandeadxx 27 мая 2011 в 14:33

"dylan" wrote:
и какие же ещё служебные функции должен выполнять скрипт формирующий ajax ответ?

все те же самые, что и формирующий любой другой ответ