-1

フォームフックで次の要素を定義しています。

$form['touchpointdivision'] = array(
    '#type' => 'select',
    '#title' => t('Division'),
    '#options' => $divisions,
    '#required' => TRUE,
    '#ajax' => array(
        'event' => 'change',
        'wrapper' => 'department-wrapper',
        'callback' => 'touchpoints_dept_callback',
        'method' => 'replace'
    )
);

$form['touchpointdepartment'] = array(
    '#type' => 'select',
    '#title' => t('Department'),
    '#prefix' => '<div id="department-wrapper">',
    '#suffix' => '</div>',
    '#options' => _get_departments($selected),
    '#required' => TRUE
);

コールバックは次のとおりです。

function touchpoints_dept_callback($form, $form_state){
    return $form('touchpointdepartment');
}

最初のドロップダウンでアイテムを変更すると、次のエラーが発生します。

「致命的なエラー:関数名は、203行目の/cmi/sites/all/modules/touchpoints/touchpoints.moduleの文字列である必要があります。」

この宣言には何が欠けていますか?

4

1 に答える 1

0

うわー、ばかげた間違い。コールバックでは、フィールド名は括弧ではなく角かっこで囲む必要があります。それで:

function touchpoints_dept_callback($form, $form_state){
    return $form('touchpointdepartment');
}

する必要があります

function touchpoints_dept_callback($form, $form_state){
    return $form['touchpointdepartment'];
}
于 2012-10-08T19:00:26.433 に答える