0

Drupal 7.15を使用しており、連絡先ページ(基本ページ)に含まれるブロックとしてWebフォームを設定しています。基本的な連絡先ページには、編集可能なサイドバーコンテンツがあり、メインコンテンツとしてWebformブロックがあります。私が抱えている問題は、Webフォームの送信時に、Contactusエイリアス「contact-us」ではなく独自のエイリアス「general-inqueries」に移動することです。基本ページに戻りたい検証エラーや確認メッセージがあればお問い合わせください。

フォームアクションは常にWebformエイリアスのようですが、エイリアスを基本ページのContact Usエイリアス(contact-us)に変更しようとすると、このエイリアスはすでに使用されていると表示されます。

エラーや成功の確認用に別のページを作成せずに、送信時にメッセージを含む元のページに戻るようにアクションを変更するにはどうすればよいですか?JSが事後にフォームアクションを設定することは避けたいと思います。エラー/成功メッセージが渡されない場合、それはとにかく私を助けないかもしれません。

ご覧になりたい場合は、次のテストサーバーをご覧ください。

http://69.160.59.20/contact-us

ありとあらゆる助けに感謝します!

皆さんありがとう

4

1 に答える 1

0

フォームアクションは、form_alterフックを使用して設定できます。何かのようなもの:

my_module_form_alter($form, $form_state, $form_id) {
  if ($form_id == 'webform_id_form') {
    $form['#action'] = url('comment/reply/'. $edit['nid']);
  }
}

Drupal 7を使用している場合は、フォームIDのチェックをスキップして、次のことを試してください。

my_module_form_form_id_alter($form, $form_state) {
}

フォームIDを見つける方法がわからない場合は、上記の関数をprintステートメントで使用してください。

my_module_form_alter($form, $form_state, $form_id) {
  print($form_id);
}

フォームIDは、webformという単語が含まれているものになります。

フォームAPIの詳細については、こちらをご覧ください:http: //api.drupal.org/api/drupal/developer%21topics%21forms_api_reference.html/7#action

于 2012-08-25T05:14:10.860 に答える