以下のような単純なコールバック関数を設定することにより、Drupal 7 でカスタム フォーム検証 - hook_FORM_ID_form_alter() を実装します。
$form['#submit'][]= 'mymodule_myformid_submission_submit';
送信機能では、フォームの検証を自分で行い、この操作に基づいて、リダイレクトする元のページで JavaScript 関数を実行したいと考えています ( aheader('Location: ...')
または$form_state['redirect'];
両方を使用して正常に動作します)。以下を使用して、JS の送信と実行を実装することにしました。
unset($_SESSION['messages']);
drupal_set_message("<script>aftersubmit();</script>");
私が抱えている唯一の問題は、ページの上部に、Drupal メッセージ領域に対応する小さな空のストライプがあることです (ただし、コンテンツ領域とパネルだけで完全にカスタマイズされたテーマを使用しています)。location.reload(true);
JS 関数の最後に。ただし、リロードには 1 秒かかります。echo を使用しようとしましたが、機能しません (理由はわかっています)。を使用して JS コードを送信する方法drupal_set_message()
が適切でないことは確かです。私は何をすべきか?(私は Drupal を学び始めたばかりなので、Ajax は使いたくありません) ありがとう