【问题标题】:Drupal 7 ajax and sessionDrupal 7 ajax 和会话
【发布时间】:2013-07-14 13:21:15
【问题描述】:

我创建了一个 .module 文件,其中包括一个表单和一个 ajax 回调。下面是 .module 文件的简单代码:

function form_registration_form($form, &$form_state) {
      $form['registration']['email'] = array(
        '#type'      => 'textfield',
        '#required'  => TRUE,
        '#size'      => 44,
        '#maxlength' => '80',
        '#attributes'=> array('placeholder' => 'Email','data-email'=>'','data-min-chars'=>'5'),
      );
      $form['registration']['password'] = array(
        '#type'      => 'password',
        '#required'  => TRUE,
        '#size'      => 44,
        '#maxlength' => '80',
        '#attributes'=> array('placeholder' => 'Password'),
      );
      $form['registration']['submit'] = array(
        '#value'     => 'SIGN IN',
        '#type'      => 'submit',
        '#submit'    => array('form_registration_handler'),
        );
      return $form;
}
and in the function form_registration_handler I create a session (name it test).
Here is the ajax menu call back function:

function mymodule_menu() {

    $items['ajax/innerAction'] = array(
        'title' => 'Browser Inner Action',
        'page callback' => 'innerActionCallBack',
        'access arguments' => array('access content'),
        'type' => MENU_CALLBACK,
    );

    return $items;
}

function innerActionCallBack() {
    header('Access-Control-Allow-Origin: *');
    drupal_session_start();
    print session_id();
}

这个函数在我的 page.tpl.php 文件中用于创建一个 ajax 到服务器。 这里的问题是当我调用ajax时,会话ID是不同的 我刷新浏览器,我无法检索我之前创建的会话测试。 你知道这里发生了什么吗?非常感谢任何帮助。

【问题讨论】:

    标签: ajax session drupal


    【解决方案1】:

    好的,我已经找到答案了。我必须先让用户登录 Drupal,这样 Drupal 才能检索到正确的 sessionID。

    【讨论】:

      猜你喜欢
      • 2011-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-13
      相关资源
      最近更新 更多