页面上有很多输入字段,表中有47行 我正在使用php while循环来生成jquery代码并为该行创建一个自动增量ID号
然后,当相应行的输入字段中的值更改时,我试图计算每行中各列的值,但是我一直在返回NaN。
我看过SO上提到的类似问题,但在我的情况下似乎没有建议的答案
这是我用于创建表的PHP代码
<?php $id = 1;
do {
$col1 = $id.'a';
$col2 = $id.'b';
$col3 = $id.'c';
$col4 = $id.'d';
$col5 = $id.'e';
$col6 = $id.'f';
$col7 = $id.'g';
$col8 = $id.'h';
$col9 = $id.'i';
$col10 = $id.'j';
$col11 = $id.'k';
$col12 = $id.'l';
?>
<tr id="<?php echo "calculate$id";?>" style="border:0px solid #ffffff;">
<td class="tg-0lax"><?php echo $res['process_type_code'].' '.$res['process_type'];?></td>
<td class="tg-0lax"><input id="<?php echo $col1;?>" type="text" style="width:50px; border:none;text-align:center" value="<?php echo $res['rebagging_cost'];?>" /></td>
<td class="tg-0lax"><input id="<?php echo $col2;?>" type="text" style="width:50px; border:none;text-align:center" value="<?php echo $res['rebagging_process_loss'];?>" /></td>
<td class="tg-0lax"><input id="<?php echo $col3;?>" type="text" style="width:50px; border:none;text-align:center" value="<?php echo $res['sifting_seiving_cost'];?>" /></td>
<td class="tg-0lax"><input id="<?php echo $col4;?>" type="text" style="width:50px; border:none;text-align:center"width="10px" value="<?php echo $res['sifting_seiving_process_loss'];?>" /></td>
<td class="tg-0lax"><input id="<?php echo $col5;?>" type="text" style="width:50px; border:none;text-align:center" value="<?php echo $res['blending_cost'];?>" /></td>
<td class="tg-0lax"><input id="<?php echo $col6;?>" type="text" style="width:50px; border:none;text-align:center" value="<?php echo $res['blending_process_loss'];?>" /></td>
<td class="tg-0lax"><input id="<?php echo $col7;?>" type="text" style="width:50px; border:none;text-align:center" value="<?php echo $res['cracking_cost'];?>" /></td>
<td class="tg-0lax"><input id="<?php echo $col8;?>" type="text" style="width:50px; border:none;text-align:center" value="<?php echo $res['cracking_process_loss'];?>" /></td>
<td class="tg-0lax"><input id="<?php echo $col9;?>" type="text" style="width:50px; border:none;text-align:center" value="<?php echo $res['milling_cost'];?>" /></td>
<td class="tg-0lax"><input id="<?php echo $col10;?>" type="text" style="width:50px; border:none;text-align:center" value="<?php echo $res['milling_process_loss'];?>" /></td>
<td class="tg-0lax"><input id="<?php echo $col11;?>" type="text" style="width:50px; border:none;text-align:center" value="<?php echo $res['heat_treatment_cost'];?>" /></td>
<td class="tg-0lax"><input id="<?php echo $col12;?>" type="text" style="width:50px; border:none;text-align:center" value="<?php echo $res['heat_treatment_process_loss'];?>" /></td>
<td class="tg-0lax"><input id="totalprocesscostton<?php echo $id;?>" readonly="readonly" type="text" style="width:50px; border:none;text-align:center" /></td>
<td class="tg-0lax"><?php echo $res['total_process_cost_kg'];?></td>
<td class="tg-0lax"><?php echo $res['total_process_loss_pct'];?></td>
<td class="tg-0lax"><?php echo $res['processed_or_finished'];?></td>
</tr>
<?php $id++; } while($res = mysqli_fetch_assoc($query));?>
这是为每一行创建Jquery代码的PHP代码
<?php
$row = 1;
$cola = $row.'a';
$colb = $row.'b';
$colc = $row.'c';
$cold = $row.'d';
$cole = $row.'e';
$colf = $row.'f';
$colg = $row.'g';
$colh = $row.'h';
$coli = $row.'i';
$colj = $row.'j';
$colk = $row.'k';
$coll = $row.'l';
do {
echo "<script>
$(\"#calculate$row\").click(function() {
var a = $(\"#".$cola."\").val();
var b = $(\"#".$colb."\").val();
var c = $(\"#".$colc."\").val();
var d = $(\"#".$cold."\").val();
var e = $(\"#".$cole."\").val();
var f = $(\"#".$colf."\").val();
var g = $(\"#".$colg."\").val();
var h = $(\"#".$colh."\").val();
var i = $(\"#".$coli."\").val();
var j = $(\"#".$colj."\").val();
var k = $(\"#".$colk."\").val();
var l = $(\"#".$coll."\").val();
var totalprocesscostton = parseInt(a) + parseInt(c) + parseInt(e) + parseInt(g) + parseInt(i) + parseInt(k);
$(\"#totalprocesscostton".$row."\").val(totalprocesscostton);
});
</script>";
$row++;
}while ($row !=47);
?>
希望有人可以对此有所启发 **编辑:添加了更新的图像,具有更好的描述
答案 0 :(得分:0)
看着parseInt
返回值:从给定字符串中解析出的整数。如果第一个字符不能转换为数字,则返回NaN。
您可以使用三元运算符来确保始终设置int。
var a = ( isNaN( parseInt( $("#".$cola."\").val() ) ) ? 0 : parseInt($("#".$cola."\").val()) );