原文http://hellodrupal.info/node/149

模块文件结构:

  • sitemode.info
  • sitemode.module
  • test_ajax.js

sitemode.info

; $Id$
name = Sitemod
description = A content type for jokes.
package = Pro Drupal Development
core = 6.x

sitemode.module

<?php
function sitemod_menu() {// 建立一个模块 sitemod$items = array();$items['ajax'] = array('page callback' => 'sitemod_callback_ajax','access arguments' => array('access content'),'type' => MENU_CALLBACK,);$items['test/ajax'] = array(//调用form效果 见下图'page callback' => 'drupal_get_form','page arguments' => array('get_ajax_form'),// 得到定义好的表单'access arguments' => array('access content'),'type' => MENU_CALLBACK,);return $items;
}function get_ajax_form(){//返回form选选项drupal_add_js(drupal_get_path('module', 'sitemod') . '/test_ajax.js');//加载js文件$form['note_book'] = array('#type' => 'radios','#title' => t('选择分类'),'#default_value' => 'IBM','#options' => array(t('IBM'), t('Dell'), t('Sony'),t('HP')),'#description' => t('选择你喜欢的品牌'),);return  $form;
}function sitemod_callback_ajax() {
$id = $_POST['id']; //ajax post数据
switch($id){case 0:drupal_json(array('html' => drupal_get_form('ibm_form')));//josn数据。formexit;break;case 1:drupal_json(array( 'html' => drupal_get_form('dell_form')));exit;break;
}}function ibm_form(){//定义表单$form['ibm'] = array('#type' => 'checkboxes', '#title' => t('IBM最新型号电脑'), '#default_value' => array('T410'),'#options' => array('T400' => t('T400'), 'T410' => t('T410'), 'X200' => t('X200'),'X201' => t('X201'),'T410S' => t('T410S'),),'#description' => t('选择你喜欢的IBM型号'),);$form['submit'] = array('#type' => 'submit','#value' => t('保存选择的信息'),'#weight' => 40,);$form_state['redirect'] = 'test/view';
return $form;
}function dell_form(){//定义表单$form['dell'] = array('#type' => 'checkboxes', '#title' => t('Dell电脑'), '#default_value' => array('d1'),'#options' => array('d1' => t('d1'), 'd2' => t('d2'), 'd3' => t('d3'),),'#description' => t('选择你喜欢的dELL型号'),);$form['submit'] = array('#type' => 'submit','#value' => t('保存选择的信息'),'#weight' => 40,);return $form;//返回表单

}

test_ajax.js

  if(Drupal.jsEnabled) { $(document).ready(function () {$('input:radio[name=note_book]').click(function () {var getSubmit = function(data) {$('#footer').html(data.html);}$.ajax({type: 'POST',url: '/drupal/ajax',dataType: 'json',success:  function(msg){//alert( msg);$("#main").prepend(msg.html);},data: {'id': $('input:radio[name=note_book]:checked').val(),},});});});
}

转载于:https://www.cnblogs.com/wangkangluo1/archive/2012/11/26/2789092.html

drupal ajax json异步调用相关推荐

  1. Ajax 网页异步调用

    Ajax的jquery的api和例子参考:http://api.jquery.com/jQuery.ajax/ 15.1. Scripting LanguagesSo far, pretty much ...

  2. jquery 异步调用方法中不能给全局变量赋值的原因及解决办法

    在调用一个jquery的ajax方法时我们有时会需要该方法返回一个值或者给某个全局变量赋值,可是我们发现程序执行完后并没有获取到我们想要的值,这时很有可能是因为你用的是ajax的异步调用async:t ...

  3. jquery ajax异步调用

    写程序的第一步都要知其然,至于知其所以然就要看个人的爱好了.下面说一下web开发中经常用的ajax. 这里是用的jquery框架实现的ajax异步调用.废话少说先上代码.(asp.net开发) var ...

  4. 精通 Grails: 用 JSON 和 Ajax 实现异步 Grails

    本文讨论 Grails 对于其互补技术 JSON 和 Ajax 的支持.在前几期的 精通 Grails 系列文章中,JSON 和 Ajax 都扮演支援者的角色,而这一次,它们担任主角.您将使用内置的 ...

  5. javascript-前后端交互-异步调用Ajax与Promise比较

    javascript-前后端交互-异步调用Ajax与Promise比较 目录 文章目录 1.异步调用 1.1.使用场景 1.2.Ajax使用 1.2.1.启动后台 1.2.2.编写前端测试页面 1.3 ...

  6. Ajax异步调用Web服务的例子

    我这里是看的Dflying Chen的使用ASP.NET AJAX异步调用Web Service和页面中的类方法的一系列文章写出来的例子. 请Dflying Chen别介意.例子中没有最后一篇文章的的 ...

  7. 使用ASP.NET AJAX异步调用Web Service和页面中的类方法(2):处理异步调用中的异常...

    本文来自<ASP.NET AJAX程序设计 第II卷:客户端Microsoft AJAX Library相关>的第三章<异步调用Web Service和页面中的类方法>,请同时 ...

  8. ajax一步调用,ajax异步调用

    ajax异步调用 内容精选 换一换 当前示例是单模型情况下推理Engine的实现代码.在多模型情况下,如果需要参考该示例,您需要注意以下几点:声明preOutBuffer变量时,不能带有static关 ...

  9. 使用Ajax异步调用

    使用Ajax异步调用 一.Ajax介绍 Ajax指异步Javascript和XML,Ajax带来用户体验的改变,页面进行局部的异步刷新: AJAX = DHTML (HTML.CSS.JavaScri ...

最新文章

  1. 《敏捷制造——敏捷集成基础结构设计》——1.2相关问题的国内外研究现状
  2. 错误类型:“系统找不到 Microsoft.Office.Interop.Word(转)
  3. tomcat6 优化初步
  4. [leetcode]203. Remove Linked List Elements链表中删除节点
  5. diy实现spring依赖注入
  6. 做一个公众号大概要多少钱_公众号流量主一个月可以赚多少钱?
  7. php ci上传图片,CodeIgniter上传图片成功的全部过程分享
  8. bLue的除法算术题 数学
  9. 漫谈忠诚:猪八戒为什么总想离队
  10. 让onclick响应Enter键
  11. s5p6818开发板uboot网络开通
  12. TP LINK交换机 console 超级终端链接设置
  13. 企业部署WAPI无线网络的技术详析
  14. 小米6显示服务器出错,小米6解锁BL显示未连接手机解决办法以及各种小技巧汇总......
  15. 英特尔hd630驱动_Ubuntu 16.04安装Intel显卡驱动(解决Intel HD Graphics 630显卡驱动问题)...
  16. 华为rh5885服务器oid_高性能全冗余 华为RH5885 V3服务器解析
  17. 11 MySQL视图
  18. file_get_contents() 报错failed to open stream: HTTP request failed! HTTP/1.1 505 HTTP Version Not Supp
  19. 如何通过图片定位位置
  20. 从零开始学前端第十七讲--微信小程序开发入门

热门文章

  1. 今日逢君君不识下一句
  2. 企业创新流程的“正向推”与“反向推”思考
  3. 为什么越有钱的人负债越多?
  4. 【以太坊源码阅读】椭圆曲线加密和EIP155
  5. html退出登录_退出登录 0152
  6. cte公用表表达式_CTE SQL删除; 在SQL Server中删除具有公用表表达式的数据时的注意事项
  7. 数据库备份恢复策略_如何根据备份策略选择和检查正确的数据库恢复模型
  8. kubernetes 安装 helm,ingress
  9. 扭曲效果 效率优化 GrapPass,CommandBuffer对比
  10. BootStrap-