2

ラジオボタンから製品を注文できる非常に複雑な注文フォームがあります。

また、選択内容に応じてページ上でライブで価格が計算されるテキスト ボックスもあります。

これは、このスクリプトを使用して行われます

<script type="text/javascript">
 jQuery(document).ready(function($){
var frm = document.forms.myForm;
frm.onchange = function(e) {
    var tot = 0;
    for( var i = 0, l = frm.elements.length; i < l; i++ ) {
        if( frm.elements[i].checked ) {
            tot += parseFloat( frm.elements[i].getAttribute('data-price') );
        }  
    }
    document.getElementById('total').value = ( tot.toFixed(2) );
}
})
    </script>

箱はこちら

<input id="total" name="total2" class="total-box" type="text">

しかし、何らかの理由で、送信されるメールに情報が追加されていません。他のすべては正常に送信されます。

私のメールスクリプトには

$total2 = $_REQUEST['total2'] ;

<tr><td style="border-bottom:1px solid #7e7e7e;">Price</td><td style="border-bottom:1px solid #7e7e7e;">'.$total2.' </td></tr>

何か案は?

4

1 に答える 1

0

JavaScript を使用すると、入力フィールドの値はサーバーの $_POST データに設定されません。したがって、ある種のシリアライゼーションを探しています (つまり、すべての入力値を受け取り、$_POST を介して送信する JavaScript。手動で行うこともできますが、面倒です)。

純粋な JavaScript に固執したい場合: http://code.google.com/p/form-serialize/が役立つかもしれません。それ以外の場合は、いくつかのフレームワークと serialize() を見てください。ほとんどのフレームワークでは、頻繁に使用されるため、実装されています。

私の提案は、PHP aswel で価格生成スクリプトを再作成することです。そのため、押されたフォーム ボタン (シリアル化する必要がないもの) を送信し、バックエンドでそれから価格を取得するだけです。はるかに安全です!

于 2012-08-21T01:44:58.743 に答える