一旦我使用我在JavaScript中执行的脚本,它只会更改while循环中第一个文本框的值。这是我的PHP代码:
<?php
$edittable=$_POST['selector'];
$N = count($edittable);
for($i=0; $i < $N; $i++)
{
$result = mysql_query("SELECT * FROM inventory where assetid='$edittable[$i]'");
while($row = mysql_fetch_array($result))
{
extract($row);
?> <tr>
<td></td>
<td><?php echo $assetdesc; ?></td>
<td><?php echo $serialno ?></td>
<td><select class="form-control" name="qtyunit" id="qtyunit" onchange="calculate()" required>
<option>----</option>
<?php
$qtyfirst = 1;
for($new = $qtyfirst ; $new <= $assetqty; $new++){
?>
<option><?php echo $new; ?></option>
<?php
}
?>
</select></td>
<td><?php echo "₱".number_format((float)$purchaseprice, 2, '.', ','); ?></td>
<input value = "<?php echo $purchaseprice; ?>" name="hiddencost" id="hiddencost" hidden>
<td><input class="form-control" name="totalcost" id="totalcost" readonly></td>
</tr>
<?php
}
}
?>
这是我的JavaScript:
<script type="text/javascript">
function calculate() {
var myBox1 = document.getElementById('qtyunit').value;
var myBox2 = document.getElementById('hiddencost').value;
var result = document.getElementById('totalcost');
var myResult = myBox1 * myBox2;
result.value = myResult;
}
</script>
答案 0 :(得分:0)
我可以在没有测试的情况下看到的最大问题是,在使用PHP循环输出时,您使用了相同的HTML id attribute
次。
每个文档只能使用一个id
名称。如果你想一次使用多个html元素,你必须使用类,例如你的选择:
<select class="form-control" name="qtyunit" class="qtyunit" onchange="calculate()" required>
<option>----</option>
<?php
$qtyfirst = 1;
for($new = $qtyfirst ; $new <= $assetqty; $new++){
?>
<option>
<?php echo $new; ?>
</option>
<?php
}
?>
</select>
然后在javascript
:
var myBoxes = document.getElementsByClassName('qtyunit').value;
注意:这个例子可能不是您想要实现的目标 - 我只想指出您的主要错误。
答案 1 :(得分:0)
所以到目前为止我已经用这种方法解决了我的问题。
php代码:
<?php
$edittable=$_POST['selector'];
$N = count($edittable);
for($i=0; $i < $N; $i++)
{
$result = mysql_query("SELECT * FROM inventory where assetid='$edittable[$i]'");
while($row = mysql_fetch_array($result))
{
extract($row);
?> <tr>
<td></td>
<td><?php echo $assetdesc; ?></td>
<td><?php echo $serialno ?></td>
<td><select class="form-control" name="qtyunit[]" id="qtyunit<?php echo $assetid; ?>" onchange="calculate(<?php echo $assetid; ?>)" required>
<option>----</option>
<?php
$qtyfirst = 1;
for($new = $qtyfirst ; $new <= $assetqty; $new++){
?>
<option><?php echo $new; ?></option>
<?php
}
?>
</select></td>
<td><?php echo "₱".number_format((float)$purchaseprice, 2, '.', ','); ?></td>
<input value = "<?php echo $purchaseprice; ?>" name="hiddencost[]" id="hiddencost<?php echo $assetid; ?>" hidden>
<td><input class="form-control" name="totalcost[]" id="totalcost<?php echo $assetid; ?>" readonly></td>
</tr>
<?php
}
}
?>
的javascript:
<script type="text/javascript">
function calculate(id){
var quantity = document.getElementById('qtyunit'+id).value;
var price = document.getElementById('hiddencost'+id).value;
var sum = parseInt(quantity,10)*parseInt(price,10);
document.getElementById('totalcost'+id).value = sum;
}
</script>