从<;td>;对行id指定的同一表行执行计算


Get data from <td> on the same table row specified by row id and perform computation

我有一个html表,该表由来自mysql数据库的数据填充。这就是结构:

<table>    
<?php
foreach($prods as $key=>$p){
?>
   <tr class="row1" id="tr<?php echo $p['ProductID']?>">
   <td id="pid<?php echo $p['ProductID']?>"><?php echo $p['ProductID']?></td>
   <td id="pname<?php echo $p['ProductID']?>"><?php echo $p['ProductName'];?></td>
   <td id="pdesc<?php echo $p['ProductID']?>"><?php echo $p['ProductDesc'];?></td>
   <td id="pprice<?php echo $p['ProductID']?>"><?php echo $p['UnitPrice'];?></td>
   <td><input type="checkbox" id="chk<?php echo $p['ProductID']?>" checked></td>
   <td><input type="text" style="width:50px;" onkeyup="getall(this);" id="<?php echo    $p['ProductID']?>"></td>
   <td><input type="text" style="width:50px;" id="total<?php echo $p['ProductID']?>">    </td>
   <span id="ttl" name="ttl"> 0.00</span>
   </tr>
   <?php
   }
   ?>
   </table>

我在填充表时没有问题,但每次用户更改<input type="text" style="width:50px;" onkeyup="getall(this);" id="<?php echo $p['ProductID']?>"></td>的值时,我都需要更新<span id="ttl">的值。我做了一个Javascript函数,但我做不到我想要的。

跨度值应为<td id="pprice<?php echo $p['ProductID']?>"><?php echo $p['UnitPrice'];?></td>和用户在文本框中输入的数量的乘积。

一旦填写完所有字段,我将很快将这些数据保存回数据库。

不确定是否正确使用了。只需尝试以下内容:

<input type="text" style="width:50px;" onkeyup="getall('<?php echo $p['ProductID']?>');" id="<?php echo $p['ProductID']?>"></td>

在您的javascript函数中:

function getall(strId)
{
    var tmpObj = document.getElementById(strId);
    alert("reported id for testing: " + tmpObj.getAttribute("id"));
}

试试看。