Всем привет! Помогите кто чем может. Разбираюсь с ajax, но выходит какая то ересь, а точнее ничего не выходит вообще. Имеется такой код в РНР:
{
$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:
{
$('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 -ничё нового.
Комментарии
в общем он не передаёт response. если писать так: $.get('/my_ajax', null, ddd(response)); то вообще в функцию ddd не идёт
Проклятье - написал полный путь и всё заработало
Так пометьте [РЕШЕНО].
Листинг пхп
/**
* 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));
}
листинг яваскрипт
{
$('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'];
};
эта хрень без перезагрузки страницы сохранит в БД слово виз поля тектового. Далее при наведении на див - напишет последнее слово из БД. Короче пример типа хелло ворлд. Мож кому поможет