2017-06-19 44 views
0

我有一個引用表單,它使用PHP從數據庫中提取數據。其中一個從數據庫中提取的字段是合作伙伴級別(銀,金,鉑金)。基於前一領域的數據的Javascript更新表單字段

合作伙伴級別下方的字段顯示合作伙伴根據其級別(較高級別等於較高折扣)接收的折扣百分比。

一旦表格加載並且合作伙伴級別從數據庫中拉入,我希望合作伙伴級別下面的字段根據用戶的合作伙伴級別顯示折扣。

這裏是形式的字段集我公司目前已成立:

<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

你的兩個字段都有'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

更改爲onblur。但我有點不清楚爲什麼折扣是一個輸入字段。此外,名稱和級別仍然使用相同的ID和名稱,這很令人困惑。 –

+0

我更新了ID以便它們不同。折扣是一個輸入字段,因爲它使頁面上的格式更加一致。我相信當用戶離開字段時,onblur()事件會觸發。當表單第一次加載時,我需要顯示這些內容。也許我應該在數據庫中設置這個值,並在合作伙伴級別字段的同時加載它? –