在PHP

时间:2016-12-14 01:05:53

标签: php html

在表单中,我想使用在以下输入中输入的值进行数学运算:

    <?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,而无需按下&#34;编辑&#34;按钮:

    <?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 个答案:

答案 0 :(得分:0)

1.正如Jacky Shek所提到的,你必须首先纠正基本语法,比如关闭php标签。

2.您如何知道用户输入的值为:&#39; $ qnt_art&#39;,&#39; $ prz_unit&#39;和&#39; $ perc_sc&#39;?

所以你必须听取所有三个输入的变化事件,例如:

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

3.您肯定需要一个函数来使用JavaScript验证输入值。

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

4.如何检查用户是否已完成输入?如果他想输入&#34; 123&#34;对于$ qnt_art,你计算他何时输入&#34; 1&#34;或&#34; 12&#34;?所以也许你需要延迟检查。

&#13;
&#13;
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
    }
  }
}
&#13;
&#13;
&#13;