私はいくつかの機能を行うはずのボタンを追加する非常にシンプルなフォームをやっていますが、機能しません。ボタンはページ上に表示されていますが、クリックするとページがリフレッシュされます。誰もこのコードで何が間違っているのを見ることができますか?Drupal 7 FAPIタイプのボタンが機能しない
function donation_form_alter(&$form, &$form_state, $form_id) {
if ($form_id == 'wedding_article_node_form') {
$form['add_donation'] = array(
'#type' => 'button',
'#submit' => array('donation_add_donation'),
'#value' => t('Add donation'),
);
}
}
function donation_add_donation(&$form, &$form_state) {
dpm('test');
dpm($form);
}
ボタンがとは関係ありませんフォームの機能私が望むのは、ボタンを押すとPHP関数が実行されるということです – Nealv
そのためには 'submit'型を使わなければなりません... Drupalは' button'の '#submit'の中で関数を実行しません。ドキュメントに記載されています。あなたはフォームの検証ハンドラでそれをやめて、$ form_state ['clicked_button'] '$ form_state ['triggering_element']'をチェックして、どのボタンが押されたかを確認することができます – Clive
FAPI文書では、 'ボタン'タイプで '#submit' - >関数を使用することができます。そして、なぜボタンタイプでさえあるのですか? – Nealv