根据表单输入计算值

时间:2018-08-21 05:17:13

标签: php codeigniter

我想计算表格中的值。输出应采用相同的形式和相同的行。

 echo '<td id="textone_'.$row['id'].'">'.$row['fee']. '</td>'; 
                echo '<td id="texttwo_'.$row['id'].'" align="center"> 
        <input type="number" min="0" max="999" 
             name="cnt"     value="0"   
              onkeyup="sum('.$row['id'].');"></td>';
                 echo '<td> <input type="text" 
           name="result_'.$row['id'].'" id="result"></td>';

<script src="//ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>

          <script>
          function sum(rowid) {
             var txtFirstNumberValue =  
           document.getElementById('textone_'+rowid).innerHTML;
           var txtSecondNumberValue = 
            document.getElementById('texttwo_'+rowid).value;
                 var result = parseInt(txtFirstNumberValue) + 
                parseInt(txtSecondNumberValue);
                    if (!isNaN(result)) {
                    document.getElementById('result_'+rowid).value = result;
                  }
                  }
                 </script>

我尝试了此操作,但没有收到我的回复。我犯了什么错误

1 个答案:

答案 0 :(得分:0)

您在js function sum()的第一行中出错

var txtFirstNumberValue =  document.getElementById('textone').innerHTML;

如果要从非输入字段访问值,则应使用innerHTML而不是value

如果您有多行,则必须执行类似的操作

HTML / PHP

echo '<td id="textone_'.$row['id'].'">'.$row['fee'].  
  '</td>'; 
 echo '<td id="texttwo_'.$row['id'].'" align="center"> 
  <input type="number" min="0" max="999" 
  name="cnt"     value="0"   
  onkeyup="sum('.$row['id'].');"></td>';
  echo '<td> <input type="text" 
   name="result_'.$row['id'].'" id="result"></td>';

$ row ['id']可以替换为表的主键或唯一字段

JS

<script>
 function sum(rowid) {
        var txtFirstNumberValue =  document.getElementById('textone_'+rowid).innerHTML;
       var txtSecondNumberValue = document.getElementById('texttwo_'+rowid).value;
       var result = parseInt(txtFirstNumberValue) + parseInt(txtSecondNumberValue);
       if (!isNaN(result)) {
           document.getElementById('result_'+rowid).value = result;
       }
   }
  </script>

希望这可以解决您的问题