我有一个要订购的产品清单,我想将'to order'字段设置为'最小'减去'stock',只要'stock'改变,但只有最后一个输入有效。对于其他人,onchange
不起作用。
$result_producten = mysqli_query($conn,
"SELECT * FROM producten "
."WHERE lev_id = '".$sql_result2['id']."'"
);
<table width="600" border="1" cellpadding"1" cellspacing= "1" class="flatTable">
<tr class="headingTr">
<th>Suppliercode</th>
<th>Product</th>
<th>Stock</th>
<th>Minimum</th>
<th>To order</th>
</tr>
<?php
while ($producten=mysqli_fetch_assoc($result_producten)) {
echo "<tr>";
echo "<td>".$producten['lev_id']."</td>";
echo "<td>".$producten['productnaam']."</td>";
echo "<td>
<input id='test' name='".$producten['id']."'
type='text' onchange='myFunction(this.value)'
onkeypress='return event.charCode >= 48 && event.charCode <= 57'
/>
</td>";
echo "<td>".$producten['minimum']."</td>";
echo "<td>
<input id='".$producten['id']."' name='mytext'
type='text' readonly='true' />
</td>";
echo "</tr>";
?>
<script>
function myFunction(val) {
var elem = document.getElementById('<?php echo $producten['id']; ?>');
elem.value = val;
}
</script>
<?php
}
?>
</table>
然后我想创建一个包含所有具有'待订单'&gt;的产品的表单0.
如何让onchange
为每件产品工作?如果为所有产品投入“库存”,我该如何创建该表格?
答案 0 :(得分:0)
您好像多次打印myFunction
。试着这样做:
while (){
// bunch of code
echo "<td>
<input id='test' name='".$producten['id']."' type='text'
//notice the difference in the onchange code
onchange='myFunction(this.value,this.name)'
onkeypress='return event.charCode >= 48 && event.charCode <= 57'/>
</td>";
//more code
}
然后低于while
:
<script>
function myFunction(val,id){
document.getElementById(id).value = val;
}
</script>
至于基于带有库存的输入创建表单&gt; 0,您需要提交一个表单(在表格中包装您的表格),在PHP一侧,获取所有提交的值并构建一系列产品ID以显示在下一页上。然后执行一个mysql查询,如:
SELECT * FROM producten WHERE product_id IN (1,5,86,19457,376)
其中1,5,86,19457,376
是您要查找的产品ID。
然后遍历结果并显示您想要的产品。此外,要执行此操作,您需要将输入名称更改为<input name="mytext[]">
,这将在$_POST['mytext']
下提交您的值数组。您可能希望使用带有产品ID或其他内容的其他输入与mytext
一起提交。