ログイン
ユーザ名

パスワード



パスワード紛失

新規登録
参照元情報
参照なし

このフォーラムではゲスト投稿が禁止されています

このフォーラムに新しいトピックを立てることはできません

Action
list-tree ツリー構造順で表示 sort-down 投稿の新しいものから previous 前のトピック next 次のトピック

なし イベント案内フォームの自動計算結果をメールにも記載したい

こんにちわ。

イベント案内のeguide_confirm.htmlにphpを記述して、
入力された値を計算しechoで計算結果を出せるようにしました。
(例:予約人数 x 料金 = 合計)

この計算結果を、確認メールの申込みデータ欄にも
反映されるようにしたいのですが、知識不足で
どうすればいいのか検討がつきません。

eguide_confirm.htmlで、
<{php}><{/php}>
内で定義した変数($goukei)などの計算結果の値を
イベント案内で入力したフォームの値として
他の入力値と同じようにhiddenで記述しようにも、
うまくいきません。

よろしければ、フォームの自動計算結果を
予約受付メールにも記載する方法を教えてください。

なし Re: イベント案内フォームの自動計算結果をメールにも記載したい

お手軽な方法だと、JavaScript で計算させて入力域にセットしてしまう方法でしょうか。
例えば、追加項目を次のような設定にするとか。
参加人数,select,1,2,3,4,5,6,7,8,9,prop=onchange="o=xoopsGetElementById('myprice'); o.value = this.value*o.defaultValue;",#人
料金,1000,size=6,prop=id="myprice" readonly,#円

なし Re: イベント案内フォームの自動計算結果をメールにも記載したい

ありがとうございます。
そんなことができるんですね。勉強になりました。

ただ、javascript利用では携帯では、無理ですよね?

集計のPHPは、確認画面のテンプレートに埋め込んで
計算と表示だけはさせれたんですけど、
どうにか他の項目データと一緒にデータとして送れないかと、
思案中です。

難しいですね^^;

なし Re: イベント案内フォームの自動計算結果をメールにも記載したい

テンプレートに PHP 書いてしまうなら、計算用の領域を普通のテキスト入力で定義しておき、確認画面に渡ってくるテンプレート変数を文字列置換で書き換えちゃえば良いんじゃないかな。

テンプレート変数をうまく使えば、smarty の組み込み機能だけでも扱えるかも。
--
安冨 伸浩 (マイサイト管理人)

なし Re: イベント案内フォームの自動計算結果をメールにも記載したい

安富様いろいろなヒントありがとうございます。

もうちょっと勉強しないと、せっかくヒントいただいても
やっぱりいじれないようです(汗

>確認画面に渡ってくるテンプレート変数を文字列置換

ちょっと理解ができず。。。

となみにテンプレートのphp部分にsmarty変数を定義
してみようとしたのですが、画面が表示されなくなってだめなようです。

$goukei

みたいに定義したのをsmartyにしちゃって、それをHTMLのフォームに
入れてしまえばいいのかな?とか思ったのですけども。



なし Re: イベント案内フォームの自動計算結果をメールにも記載したい

頭の体操がてらやってみました。

追加項目を次のようにして
参加人数,select,1,2,3,4,5,6,7,8,9,#人
料金,1000,size=6,prop=readonly,#円/人

eguide_confirm.html のテンプレートで計算させてみました。
置換のための文字列生成がかなりトリッキーですが、smarty のみで実現できました。
@@ -26,9 +26,17 @@
       <{if !empty($form_continue)}>
 	 <{$fm.value}></td></tr>
 	<{assign var=form_continue value=0}>
       <{else}>
-	<tr class="<{cycle values="even,odd"}>"><td class="head"><{$fm.label}></td><td><{$fm.value}></td></tr>
+        <{assign var=val value=$fm.value}>
+        <{if $fm.label == "参加人数"}>
+          <{assign var=persons value=$val}>
+        <{elseif $fm.label == "料金"}>
+          <{assign var=pattern value=$smarty.foreach.item.iteration|regex_replace:"/^(\d+)$/":"/( name='opt\$1' value=)'\d+'/"}>
+          <{assign var=val value=$fm.value*$persons}>
+          <{assign var=price value=$val|regex_replace:"/^(\d+)$/":'\$1"$1"'}>
+        <{/if}>
+	<tr class="<{cycle values="even,odd"}>"><td class="head"><{$fm.label}></td><td><{$val}></td></tr>
       <{/if}>
     <{/if}>
   <{/foreach}>
   </table>
@@ -42,11 +50,11 @@
     </table>
     <{/if}>
     <{if $cancel}>
     <table align="center">
-      <tr><td><{$submit}></td><td><{$cancel}></td></tr>
+      <tr><td><{$submit|regex_replace:$pattern:$price}></td><td><{$cancel}></td></tr>
     </table>
     <{else}>
       <{$submit}>
     <{/if}>
   </div>
 </div>
--
安冨 伸浩 (マイサイト管理人)

なし Re: イベント案内フォームの自動計算結果をメールにも記載したい

頭の体操がてらやってみました。

追加項目を次のようにして
参加人数,select,1,2,3,4,5,6,7,8,9,#人
料金,1000,size=6,prop=readonly,#円/人

eguide_confirm.html のテンプレートで計算させてみました。
置換のための文字列生成がかなりトリッキーですが、smarty のみで実現できました。
@@ -26,9 +26,17 @@
       <{if !empty($form_continue)}>
 	 <{$fm.value}></td></tr>
 	<{assign var=form_continue value=0}>
       <{else}>
-	<tr class="<{cycle values="even,odd"}>"><td class="head"><{$fm.label}></td><td><{$fm.value}></td></tr>
+        <{assign var=val value=$fm.value}>
+        <{if $fm.label == "参加人数"}>
+          <{assign var=persons value=$val}>
+        <{elseif $fm.label == "料金"}>
+          <{assign var=pattern value=$smarty.foreach.item.iteration|regex_replace:"/^(\d+)$/":"/( name='opt\$1' value=)'\d+'/"}>
+          <{assign var=val value=$fm.value*$persons}>
+          <{assign var=price value=$val|regex_replace:"/^(\d+)$/":'\$1"$1"'}>
+        <{/if}>
+	<tr class="<{cycle values="even,odd"}>"><td class="head"><{$fm.label}></td><td><{$val}></td></tr>
       <{/if}>
     <{/if}>
   <{/foreach}>
   </table>
@@ -42,11 +50,11 @@
     </table>
     <{/if}>
     <{if $cancel}>
     <table align="center">
-      <tr><td><{$submit}></td><td><{$cancel}></td></tr>
+      <tr><td><{$submit|regex_replace:$pattern:$price}></td><td><{$cancel}></td></tr>
     </table>
     <{else}>
       <{$submit}>
     <{/if}>
   </div>
 </div>
--
安冨 伸浩 (マイサイト管理人)

list-tree ツリー構造順で表示 sort-down 投稿の新しいものから previous 前のトピック next 次のトピック



条件検索へ
© 2008 MySite Web Service