问:如何在drupal中添加ajax,当我输入学生姓名时,应该显示学生详细信息而不加载页面,
答:输入学生姓名后,调用javascript函数执行ajax调用,然后设置将接收AJAX回调的元素,例如:
<div id =“ ajax-target”> Ajax在这里!!! </ div>
之后转到自定义代码:
1->创建一个JavaScript函数,该函数将使用jQuery.load()处理该调用。路径中的$ nid只是一个例子。它可以是任何变量。
<脚本>
函数myModule&#95; ajax&#95; load(name){
jQuery(“#ajax-target”)。load(“ / node / ajax /” + name);
}
</ script>
注意:请使用_代替&#95;。在上面的代码中
在自定义模块中编写代码:
2->通过实现hook_menu(),注册将呈现HTML的URL:
函数myModule_menu(){
$ items ['node / ajax /%'] = array(
'页面回调'=>'myModule_ajax_get_ajax',//渲染HTML。
'页面参数'=> array(2),
'类型'=> MENU_CALLBACK,
'访问参数'=> array('访问内容'),
'delivery callback'=>'myModule_ajax_callback',//魔术在这里。
);
返回$ items;
}
3->创建页面回调和传递回调函数:
函数myModule_ajax_get_ajax($ nid){
//您可以返回所需的任何内容,包括表格。
$ node = node_load($ nid);
返回node_view($ node,'teaser');
}
函数myModule_ajax_callback($ page_callback_result){
//只渲染内容
$ content = drupal_render($ page_callback_result);
//添加CSS和JS文件,添加一些html
$ html =''。drupal_get_css()。drupal_get_js()。''。$ content。'';
打印$ html;
//执行请求结束任务。
drupal_page_footer();
}