「メインメニュー」という名前のコンテンツタイプを作成しました。互いに依存している選択リストはほとんどありません。別のチェックボックスが選択されているときに別のリストを表示したいと思いました。私はそれを実現するためにフォームを編集するためにAjaxを使用する必要があることを理解しましたが、hook_form_alterでAjaxを使用する方法を誰かに教えてもらえますか?
編集するフォームのフォームIDは「main_menu_node_form」です。を使用してこのフォームにアクセスし、フォームフィールドのプロパティをhook_form_alter()
追加しようとすると#ajax
、ハンドルがに渡される前にフィールドが既にレンダリングされているため、そうすることができないようですhook_form_alter()
。誰かがこれを解決するのを手伝ってくれませんか?
注:を使用してコンテンツタイプを作成しましたhook_install()
。
function main_menu_content_type_form_main_menu_node_form_alter(&$form, &$form_state, $form_id) {
dpm($form);
dpm($form_state);
$form['field_mlnk'] = array(
'#ajax' => array(
'callback' => 'main_menu_content_type_form_main_menu_node_form_alter_callback',
'wrapper' => 'link-div',
'method' => 'replace',
'effect' => 'fade',
),
);
}
hook_form_alter()
(あなたが書いたように、「form alter […[…]を使用してこのフォームにアクセスしようとしたとき」)。
main_menu_content_type_form_main_menu_node_form_alter_callback()
。その関数に誤ったコードが含まれている場合、ユーザーはコードを機能させるためにコードに対して行う必要がある変更を報告できません。