2011-10-19 5 views
0

個人情報を入力して商品を選択できるフォームを作成しています。いくつかの簡単なJavaスクリプトで価格を動的に調整し、最終的にすべての情報をPDFファイルに出力します。Javascriptを使用した動的注文フォーム - ボーナスコードの読み取り?

今私はボーナスコードを実装する必要があります。 「BONUS2011」を入れると、選択したすべての製品で20%の得意先となります。それは動的にする必要があります。ボーナスフィールドを正確に記入した瞬間のように、あなたは価格の20%を得ます。

私の質問は今これを行う最も簡単で最も簡単な方法は何ですか?私はちょうど.jsにボーナスコードを保存することができますが、もちろんそれは理想的な解決策ではありません。 JavascriptとPHPでの私の知識は非常に限られています(あなたが気づいたように)。

ありがとうございます!

+1

あなたはアヤックスを使用することができます。入力した値をPHPスクリプトに渡すためにAjaxを使用するボーナス・フィールドのJavaScriptイベントonchangeまたはonkeypressを配置します。 PHPは該当する割引をJavaScriptに返し、フォームを更新します。入力されたコードが有効でない場合は、0(および/または何らかのエラーメッセージ)を返します。あなたは本当にすべての個別の価格を更新したいですか?私は合計に割引を適用することを提案します(該当する場合は出荷前または出荷後)。あなたは間違いなく、ユーザーがソースを見て、それらを見ることができるので、JSにボーナスコードを直接載せたくありません。 – nnnnnn

+0

要するに、ユーザーがフィールドに入力するときに、サーバー上のスクリプトに対してAjax要求を行い、これまでに何が応答されているかを検証する必要があります。私はあなたの特定のユースケースについてのチュートリアルは見ていませんが、Googleでは「Ajaxライブ検索」チュートリアルの周りに同じ概念があります。 –

答えて

0

コードスニペットがないので、私はできることの非常に大まかな例を行います。投稿後に顧客に請求する情報が正しく計算されていること、フォームのTotalフィールドに頼っておらず(投稿時に操作できるため) 。

do ボーナスコードをJavaScriptに入れてみれば誰もがそれを見ることができます。

AJAX呼び出しを実装して価格フィールドを更新します。そこにはたくさんの例があります。 jQuery(http://www.jquery.com)のようなJavaScriptライブラリを使用する方が簡単です。 jQueryを使って

  • https://encrypted.google.com/search?q=use+ajax+to+update+an+input+box
  • AJAX, refresh INPUT field

    • それは本当に簡単です:

      // HTML 
      <!-- Bonus Code goes here --> 
      <input type="text" id="bonus_code" /> 
      
      <!-- Contains the full price for the products --> 
      <input type="hidden" id="full_price" value="100.00" /> 
      
      <!-- Contains the display price for the products --> 
      <input type="text" id="display_price" readonly value="100.00" /> USD 
      
      // JavaScript 
      $(document).ready(function() 
      { 
          $('#bonus_code').change(function() 
          { 
           $.get('calculate_price.php', 
            { 
             bonus_code: $(this).val(), 
             full_price: $('#full_price').val() 
            }, 
            function(result) 
            { 
             $('#display_price').val(result); 
            } 
           ); 
          }); 
      }); 
      
      // calculate_price.php 
      <?php 
      $bonus_code = $_GET['bonus_code']; 
      $full_price = (float)$_GET['full_price']; 
      if ($bonus_code == 'BONUS2001') 
      { 
          echo $full_price/100 * 80; // output the new price 
      } 
      else 
      { 
          echo $full_price; 
      } 
      ?> 
      
    関連する問題