web-dev-qa-db-ja.com

予約フォームを作成する最良の方法は何ですか?

イベントの予約フォームを作成する必要があります。このフォームには、通常のテキストフィールドに加えて、チケット数のドロップダウンリストが1つ含まれます。ユーザーが変更できる単一のチケットの価格が事前に入力されたフィールドがあります。単一のチケットの価格を含むフィールドの後に、チケットの合計価格を含む別のフィールドがあり、チケットの数を自動的に選択すると、フォームの送信後に合計価格が更新され、データベースに保存されます。送信後、メールを送信する必要があります。mime-mailを使用できますが、価格のライブフィールドのために方法を変更する必要があるかどうかをお知らせください。

オンラインでの支払いは想定されていません。

すべてが明確である場合はお知らせください。

3
Tyler Durden

Drupalが初めての場合は、まず webform モジュールを試してみます。これは非常に人気のある十分にテストされたモジュールであり、あまり一般的に使用されていないモジュールでは取得できないセキュリティ修正を取得することがよくあります。

フォームのオプションを作成するために必要なすべての基本機能があり、送信時に電子メールを送信するように簡単に構成できます。 Drupalデータベースに送信されたすべてのデータの記録も残します。

正直なところ、私の頭の上では、Webformが要求した計算を実行できるかどうかはわかりません。ただし、そのためには 計算フィールド モジュールがあり、PHPで簡単な関数を記述して値を計算できます。代わりに、- rules 合計価格を計算するアクション「データ値の計算」を伴うモジュールの「ノード保存」イベント。

他にも多くのアプローチがありますが、これらは一般的に使用されていますDrupalかなり優れたドキュメントを備えたモジュールであるため、開始するには良い場所だと思います。

1
Patrick Kenny

私はそれをjQueryを通して解決しました。私は3つの分野に関与しました。 1つの選択、1つのテキストフィールド、および1つのテキストフィールドは読み取り専用です。

Selectはチケットの数を定義し、テキストフィールドにはチケットの価格が含まれ、読み取り専用フィールドには合計価格が含まれます。

ユーザーが価格でselectまたはtextfieldを変更するたびに、readyonlyフィールドを自動的に更新したいと思います。だから私はこのようにしました。

 jQuery(function(){
function display() {
 var ticket =  jQuery('#ticket').val();
var price =  jQuery('#price').val();
var totalPrice = ticket * price;
jQuery('input[id=totalprice-readonly]').attr(
        {value: totalPrice});
}
jQuery('#ticket').change(display);
display();
jQuery("#price").keyup(function () {
      var price = jQuery(this).val();
 var ticket =  jQuery('#ticket').val();
var totalPrice = ticket * price;
jQuery('input[id=totalprice-readonly]').attr(
        {value: totalPrice});
    }).keyup();

});

これが私のやり方です。それは適切に機能し、完了する必要があります(千の区切りと10進数)。

すべての提案は大歓迎です。

1
Tyler Durden

Booking Time Slots モジュールを確認するか、または Booking Systemモジュールの比較 を参照してください。

モジュールはタイムスロット予約機能を提供します。

例えば:

  • ユーザーはカレンダーにアクセスして、指定された時間枠を予約できます
  • 使用可能なタイムスロットの数とイベントの期間を設定できるため、その後、そのタイムスロットが解放されます
  • 時間単位と30分単位の時間帯を構成できます(カレンダービューで)
0
kenorb