2017-06-19 9 views
0

PHPを使用してdbからデータを取得する引用フォームがあります。 DBから引き出されるフィールドの1つはパートナーレベル(シルバー、ゴールド、プラチナ)です。Javascript前のフィールドのデータに基づいてフォームフィールドを更新します

パートナーレベルの下にあるフィールドには、パートナーが受け取ったレベルに基づいて割引率が表示されます(上位レベルは高い割引と同じです)。

フォームが読み込まれ、パートナーレベルがDBから取得されると、パートナーレベルの下のフィールドに、パートナーのレベルに基づいて割引が表示されます。

<fieldset> 
          <div class="form-top"> 
           <div class="form-top-left"> 
            <h2>Partner Information</h2> 
            <h3>Tell us who you are</h3> 
           </div> 
           <div class="form-top-right"> 
            <img src="assets/images/icons/partner_info.png" class="form-icon"> 
           </div> 
          </div> 
          <div class="form-bottom"> 
           <div class="form-group"> 
            <input type="text" readonly="readonly" name="form-partner-name" placeholder="Partner name" class="form-partner-name form-control" id="form-partner-name" 
              value="<?php echo $_SESSION['user']['firstName'], " ", $_SESSION['user']['lastName']?>"> 
           </div> 
           <div class="form-group"> 
            <input type="text" readonly="readonly" name="form-partner-level" placeholder="Partner Level" class="form-partner-level form-control" id="form-partner-level" 
              value="<?php echo $_SESSION['user']['partnerLvl']?>"> 
           </div> 
           <div class="form-group"> 
             <input type="text" readonly="readonly" name="discount-perc" placeholder="Discount(%)" class="form-control" id="form-discount-perc"> 
            </div> 
            <div class="form-group"> 
             <input type="text" name="form-margin-perc" placeholder="Margin(%)" class="form-control" id="form-margin-perc"> 
            </div> 
           <br /> 
           <button type="button" class="btn btn-next">Next</button> 
          </div> 
</fieldset> 

JavaScriptを使用して、パートナーレベルのフィールドの値を読み取ることで、割引フィールドを更新するにはどうすればよい:ここで

は、私は、現在設定しているフォームのフィールドセットですか?

+1

2つのフィールドには 'id =" form-partner-name "があります。これを修正してください。 –

+0

良いキャッチ、ありがとう! –

答えて

0

入力は次のようになります。

<input type="text" name="form-partner-level" placeholder="Partner level" class="form-partner-name form-control" id="form-partner-level" 'onblur="updateDiscount()"' 
value="<?php echo $_SESSION['user']['partnerLvl']?>"> 

その後、スクリプトが

<script language="javascript"><!-- 
function updateDiscount() { 
    var level = document.forms["your-form"].form-partner-level.value; 
var discount = document.forms["your-form"].discount-perc.value; 

    if (level == "Platinum") { 
    discount = 20; 
    } else { 
    discount = something-else; 
    } 
//--></script> 

です***更新:OPは、ページの読み込みに計算を要求します。この場合:

<?php 
     if ($_SESSION['user']['partnerLvl'] == "Platinum") { 
     $discount = 20; 
     } else { 
     $discount = something-else; 
     } 
... 

    <input type="text" readonly="readonly" name="discount-perc" class="form-control" id="form-discount-perc" value="<?php echo $discount; ?>" /> 
+0

私はあなたがここで何を得ているのかを見ていますが、私はこの正確な解決策はうまくいかないと思います。 onkeyupはユーザーがキーを離したときに発生しますが、ページが読み込まれるとキー入力が実行されません。 jsは文字列の値を読み取り、それを割引レベルに変換する必要があります(パートナーレベル== "Platinum"の場合は割引率の値を20%に設定します)。 –

+0

オンブラに変更されました。しかし、なぜ割引が入力項目であるのかはっきりしていません。また、名前とレベルではまだ同じIDと名前を使用していますが、これはかなり混乱しています。 –

+0

IDが異なるようにIDを更新しました。割引はページ上の書式をより一貫させるため、入力フィールドです。私はonblur()イベントは、ユーザーがフィールドを離れるときに発生すると信じています。フォームが最初に読み込まれたときにこれを表示する必要があります。おそらく、私は自分のデータベースにこの値を設定し、パートナーレベルのフィールドと同時にロードする必要がありますか? –

関連する問題