zoukankan      html  css  js  c++  java
  • drupal6的AJAX,ahah学习研究笔记

    ahah使form能实现ajax效果。使用需要先在form使用DIV划定wrapper区域(可以通过#prefix与#suffix添加DIV外框),传递#ahah参数,#ahah参数决定callback路径、wrapper的ID与过渡效果等。带有#ahah参数的form项被点击或改变状态时将会无刷新访问callback URL, callback会返回一些json结果,来替换(或追加)wrapper区域内的内容。

     

    主要实现代码如下:

     

      $form['howmany'] = array( // 表单项定义
        '#title' => t('How many checkboxes do you want?'),
        '#type' => 'select',
        '#options' => array(1=>1, 2=>2, 3=>3, 4=>4),
        '#default_value' => $default,
        '#ahah' => array(   // ahah参数
          'path' => 'examples/ahah_example/autocheckboxes/callback', // callback路径
          'wrapper' => 'checkboxes',    // wrapper ID
          'effect' => 'fade',
        ),
      );
    
      $form['checkboxes'] = array(
        '#title' => t("Generated Checkboxes"),
        '#prefix' => '<div id="checkboxes">',  // 用div把表单项包住,并设定ID,必须唯一,本例子中作为wrapper区域使用
        '#suffix' => '</div>',
        '#type' => 'fieldset',  // fieldset表单项,一般用于表单项分组
      );
    
        // wrapper内的表单项,将会被替换的数据部分
        $form['checkboxes']["checkbox1"] = array(
          '#type' => 'checkbox',
          '#title' => "Checkbox 1",
        );
    
    // callback处理函数
    function ahah_example_autocheckboxes_callback() {
      $form = ahah_example_callback_helper();   // 自定义方法,用于得到表单最新状态
    
      $checkboxes = $form['checkboxes'];
      // Remove the wrapper so we don't double it up.
      unset($checkboxes['#prefix'], $checkboxes['#suffix']); // 被替换的部分,不包括wrapper DIV
    
      $output = theme('status_messages');
      $output .= drupal_render($checkboxes);    // 通过表单数据生成表单HTML
    
      // Final rendering callback.
      print drupal_json(array('status' => TRUE, 'data' => $output));    // 转为json数据
      exit();
    
    }
    
  • 相关阅读:
    windows 10 下部署WCF 一些细节
    系统提示 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。
    zookeeper常用命令
    zookeeper安装与配置
    Java访问者模式
    总结设计模式—(大话设计模式下篇)
    总结设计模式—(大话设计模式中篇)
    总结设计模式—(大话设计模式上篇)
    Java中间缓存变量机制
    解释模式
  • 原文地址:https://www.cnblogs.com/catcat811/p/1938827.html
Copyright © 2011-2022 走看看