簡體   English   中英

通過計算PHP中的其他三個輸入值來設置輸入值

[英]Set input value as a result of calculating three other input values in PHP

在一種形式中,我想對以下輸入中輸入的值進行數學運算:

    <?php
        function makeTextInputField($qnt_art) 
            $textqnt = ucfirst($qnt_art);       
            echo        
                <label for='{$qnt_art}'>Quantità Articolo:</br></label>
                <input type='integer' name='{$qnt_art}' value='' /input>
                </br></br>
    <?php
        function makeTextInputField($prz_unit) 
            $textprz = ucfirst($prz_unit);      
            echo        
                <label for='{$prz_unit}'>Prezzo Unità:</br></label>
                <input type='double' name='{$prz_unit}' value='' /input>
                </br></br>
    <?php
        function makeTextInputField($perc_sc) 
            $textperc = ucfirst($perc_sc);      
            echo        
                <label for='{$perc_sc}'>Sconto (decimali):</br></label>
                <input type='double' name='{$perc_sc}' value='' /input>
                </br></br>

用戶在上述輸入中輸入值后,我希望在以下等式中使用這些值:

$imp_art=(($qnt_art)*($prz_unit))- ((($qnt_art)*($prz_unit))*$perc_sc)

...,然后將該等式的結果分配給以下代碼中的$imp_art ,而無需按下“編輯”按鈕:

    <?php
        function makeTextInputField($imp_art) 
            $textimp = ucfirst($imp_art);       
            echo        
                <label for='{$imp_art}'>Importo Articolo/i:</br></label>
                <input type='double' name='{$imp_art}' value=''/input>
                </br></br>

我怎樣才能做到這一點?

1.正如Jacky Shek提到的那樣,您必須首先更正基本語法,例如關閉php標簽。

2.您如何知道用戶輸入了“ $ qnt_art”,“ $ prz_unit”和“ $ perc_sc”的值?

因此,您必須監聽所有三個輸入的change事件,例如:

 <input type='integer' name='{$qnt_art}' value='' onchange="validate()"/> 

3.您肯定需要一個函數來使用JavaScript驗證輸入值。

 function validate(){ if($qnt_art && $prz_unit && $perc_sc){//your check logic //change the text of imp_art. } } 

4.如何檢查用戶輸入是否完成? 如果他想為$ qnt_art鍵入“ 123”,您會在他鍵入“ 1”或“ 12”時進行計算嗎? 因此,也許您需要延遲檢查。

 function delayCheck(){ if(!this.lastTime){ this.lastTime = new Date().getTime(); this.timer = setTimeout(validate, 100);//delay 100ms to check }else{ if(new Date().getTime() - this.lastTime < 100){ clearTimeout(this.timer); this.timer = setTimeout(validate, 100);//delay 100ms to check } } } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM