[РЕШЕНО] Спасите. Не пойму почему не работает AJAX

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

Аватар пользователя monsterofcode monsterofcode 12 октября 2010 в 8:51

Всем привет! Помогите кто чем может. Разбираюсь с ajax, но выходит какая то ересь, а точнее ничего не выходит вообще. Имеется такой код в РНР:

function my_ajax_menu()
{
        $items = array();
        $items['my'] = array(
                        'title' => 'Users who have not yet created coupons',
                        'page callback' => 'my_ajax_page',
                        'access arguments' => array('created nodes report'),
        );
        $items['my_ajax'] = array(
                        'title' => 'Users who have not yet created coupons',
                        'page callback' => 'my_ajax_get_form',
                        'access arguments' => array('created nodes report'),
                        'type' => MENU_CALLBACK,
        );
        return $items;
}

function my_ajax_page()
{
        drupal_add_js(drupal_get_path('module','my_ajax').'/js/for_ajax.js');
        return '<div class=my_ajax>ddd</div>'.drupal_get_form('my_ajax_form', '');
}
/*есть функция заполнение БД но её писать не буду*/

function my_ajax_get_form()
{
        $a = db_result(db_query("select my from {for_ajax} where ajaxid in (select max(ajaxid) from {for_ajax})"));
        drupal_json(array('status' => 0, 'data' => $a);
}

Далее файл js:

Drupal.behaviors.my_ajax = function(context)
{
        $('div.my_ajax:not(.my_ajax-processed)', context).addClass('my_ajax-processed')
        .bind('mousemove', null, function()
        {
                //$.get('/my_ajax/', { name: "John", time: "2pm" }, function(data){alert(data);});
                $.get('/my_ajax', null, ddd());
        });
};

var ddd = function(response)
{
        alert('ddd');//тут алертится
        var result = Drupal.parseJson(response);
        alert('rrr');//тут неалертится
        var id = parseInt(result['data']);     
        $('div.my_ajax-processed').html('data');
        $('div.my_ajax-processed').html(result['data']);
        alert('dddwww');
        return false;
};

Как понимаю проблема с var result = Drupal.parseJson(response);. Подключил модуль jQuery Update. Drupal 6.19 Подскажите - непойму - всяуо пробовал - чую решение простое, но что сделать - непойму. Читал и документацию - JQuery -ничё нового.

Комментарии

Аватар пользователя monsterofcode monsterofcode 12 октября 2010 в 11:46

Листинг пхп

<?php

/**
 * Implementation of hook_menu()
 * return array
 */

function my_ajax_perm()
{
        return array('view bought', 'created nodes report');
}

function my_ajax_menu()
{
        $items = array();
        $items['my'] = array(
                        'title' => 'Users who have not yet created coupons',
                        'page callback' => 'my_ajax_page',
                        'access arguments' => array('created nodes report'),
        );
        $items['my_ajax'] = array(
                        'title' => 'Users who have not yet created coupons',
                        'page callback' => 'my_ajax_get_form',
                        'access arguments' => array('created nodes report'),
                        'type' => MENU_CALLBACK,
        );
        $items['my_ajax_save'] = array(
                        'title' => 'Users who have not yet created coupons',
                        'page callback' => 'my_ajax_save_form',
                        //'page arguments' => array(NULL),
                        'access arguments' => array('created nodes report'),
                        'type' => MENU_CALLBACK,
        );
        return $items;
}

function my_ajax_init()
{
        drupal_add_js(drupal_get_path('module','my_ajax').'/js/for_ajax.js');
}

function my_ajax_page()
{
        drupal_add_js(drupal_get_path('module','my_ajax').'/js/for_ajax.js');
        return '<div class=my_ajax>ddd</div>'.drupal_get_form('my_ajax_form', '');
}

function my_ajax_form()
{
        $form = array();
       
        $form['fff'] = array
        (
                '#type'          => 'textfield',
                '#title'         => t('ffffffff'),
                '#description'   =>  t('ffffffff.'),
        );
       
        $form['sss'] = array
        (
                '#type' => 'submit',
                '#value' => t('Sent'),
                '#submit' => array('my_ajax_save_form',$form),
                '#attributes' => array('onClick' => 'in_div()'),
        );
        return $form;
}

function my_ajax_save_form()
{
        db_query("INSERT INTO {for_ajax} (my) VALUES('%s')", $_GET['name']);

}

function my_ajax_get_form()
{
        $a = db_result(db_query("select my from {for_ajax} where ajaxid in (select max(ajaxid) from {for_ajax})"));
        drupal_json(array('status' => 0, 'data' => $a));
}

листинг яваскрипт

Drupal.behaviors.my_ajax = function(context)
{
        $('div.my_ajax:not(.my_ajax-processed)', context).addClass('my_ajax-processed')
        .bind('mouseover', null, function()
        {
                $.get('/for_ajax/my_ajax', null , function(data) {ddd(data);});
        });
       
        $("#my-ajax-form").submit(function ()
        {
                $.get('/for_ajax/my_ajax_save', {name: $('#edit-fff')[0].value});
                $('#footer').html($('#edit-fff')[0].value);
        return false;
        });
};

var ddd = function(response)
{
        var result = Drupal.parseJson(response);       
        $('div.my_ajax-processed').html(result['data']);
        return result['data'];
};

эта хрень без перезагрузки страницы сохранит в БД слово виз поля тектового. Далее при наведении на див - напишет последнее слово из БД. Короче пример типа хелло ворлд. Мож кому поможет