Php DrupalD3模块添加Ajax

Php DrupalD3模块添加Ajax,php,ajax,drupal,d3.js,Php,Ajax,Drupal,D3.js,我试图在D3 Drupal 7模块中实现ajax,我就是这样做的,但没有得到预期的结果,即 添加了一个菜单 function d3_form_menu() { $items['d3_form'] = array( 'title' => 'D3 form examples', 'description' => 'Different visualization examples using d3.', 'page callback' => 'xx

我试图在D3 Drupal 7模块中实现ajax,我就是这样做的,但没有得到预期的结果,即

添加了一个菜单

function d3_form_menu() {    
  $items['d3_form'] = array(
    'title' => 'D3 form examples',
    'description' => 'Different visualization examples using d3.',
    'page callback' => 'xxxxxxx',
    'access callback' => TRUE,
  );

  $items['d3_form/simple_form'] = array(
    'title' => 'Simple Form',
    'page callback' => 'drupal_get_form',
    'page arguments' => array('d3_form_frm'),
    'access callback' => TRUE,
    'type' => MENU_CALLBACK,
  );

  return $items;
}
**将要求用户为饼图输入值的表单**

function d3_form_frm($form,&$form_submit) {

  $form['firstname'] = array(
    '#title' => t('Firstname'),
    '#type' => 'textfield',
    //'#required' => TRUE,
  );
  $form['lastname'] = array(
    '#title' => t('Lastname'),
    '#type' => 'textfield',
  );
  $form['submit'] = array(
    '#value' => t('Submit'),
    '#type' => 'submit',
    '#ajax'=>array(
        'callback' => 'd3_form_frm_ajax_submit',
        'wrapper' => 'd3-form-frm',
        'method' => 'replace',
        'effect' => 'fade',
        ),
    );

  return $form;
}


 Ajax callback function.

function d3_form_frm_ajax_submit($form, $form_state) {
  $pieArray=array();
  // Dummy/dumb validation for demo purpose.
  if (!empty($form_state['input']['firstname'])) {
      $pieArray[0]=$form_state['input']['firstname']*1;
      $pieArray[1]=$form_state['input']['lastname']*1;

    return d3_form_custom_pie($pieArray);

  }
  else {
    return 'Not input Received';
  }
}
这将生成饼图,但实际情况并非如此。单击一次后,还将禁用“提交”按钮。但是,当我启用Devel时,我注意到 为开发人员提供各种块、页面和函数。此时会出现图表

function d3_form_custom_pie($pieArray) {
  $chart = array(
    'id' => 'visualization',
    'type' => 'PieChart',
    'rows' => array(
      array('Development', $pieArray[0]),
      array('Strategy', $pieArray[1]),
    ),
  );
  return d3_draw($chart);
}

D3在这里指的是什么?这似乎只是您的模块名。有两个链接涉及在drupal和中使用javascript。