【发布时间】:2014-07-06 00:08:01
【问题描述】:
首先,我想计算一个表单中两个字段之间的剩余QTY(数量);换句话说,我将 actual QTY 输入文本字段作为只读字段,其值是从 mysql 表中获取的,并且 user QTY 输入文本字段取自用户输入。我想要的只是根据用户在用户数量中输入的内容减少实际数量。
我的代码如下:
$query2 = "SELECT * from store_00";
$result2 = mysql_query($query2);
$n = array();
while($row2 = mysql_fetch_assoc($result2)){
echo "<td align=center>".$row2['item_no']."</td><td align=center>";
?>
<input type="text" id="fname" value="<?php echo $row2['qty'] ?>" readonly="readonly"/>
<?php
echo "</td>";
for($i=0;$i<$num;$i++){
echo "<td align=center>"; ?><input autofocus="autofocus" onchange="myFunction(this.value);" type="text" name="n[]" value=""/><?php echo "</td>";
}
echo "</tr>";
}
还有 Javascript 代码:
function myFunction(v)
{
var x=document.getElementById("fname");
x.value = x.value - v;
}
上面将第一次正确输出 actual QTY,但是当用户将值更改回 0 时,它将从新的 actual QTY 值减少这给出了一个错误的剩余......所以必须有一种方法可以在某处保存一个临时的 actual QTY 值。
无论如何我知道代码看起来很糟糕,我还是 JS 新手,不知道如何在两个字段之间创建一个简单的关系和剩余计算。
【问题讨论】:
-
$num来自哪里? -
@Burak 别担心!已经在
$query2之前声明了 -
1 - 你有重复的 ids ->
id="fname",因为它在循环中while($row2 = mysql_fetch_assoc($result2)){}。因此,您拥有的行越多,id="fname"您将拥有的越多。 2 - 你可以检查值是否已经是0->if(x.value != 0) {x.value = x.value - v;} else{ //set x.value to something else }
标签: javascript php mysql function input