有什么办法可以让我通过大量的输入类型编号进行迭代,而只打印出大于0的值?
假设我有10个人
<form action="displayInfo.PHP" method="post">
<table cellpadding="6">
<tr>
<th>Description</th>
<th>Price</th>
<th>Weight</th>
<th>Image</th>
<th>Quantity</th>
</tr>
<!-- PHP Language -->
<?PHP
$sql = "SELECT * FROM parts";
$q = $conn->query($sql) or die("ERROR: " . implode(":", $conn->errorIndo()));
while( $row = $q->fetch(PDO::FETCH_ASSOC))
{
echo '<tr>' .
'<td>' . $row['description'] . '</td>' .
'<td>' . $row['price'] . '</td>' .
'<td>' . $row['weight'] . '</td>' .
'<td> <img src="' . $row[pictureURL] .'" alt="' . $row[number] . '" style="width:50px;height:50px;">' .
'<td> <input type="number" name = "' . $row[number] ." id= "'. $row[number] . '" value="0">' .
'</td>' . '</tr>';
}
echo "</table>";
?>
</table> <br>
<input type="button" id="submit" value="Submit" />
</form>
因此,它们是使用ID值1,2,3,… 10动态创建的.
然后通过用户输入更新值.
无论如何,对于用户输入的大于0的值,我是否可以捕获“提交”按钮传递的数据?如果是这样,我还将如何传递描述甚至$row [number]以及与之关联的值.代码中显示的输入类型数字的id = $row [数字].
解决方法:
最简单的方法可能是使用PHP功能,其说明为How do I create arrays in a HTML <form>
?
简而言之,您可以重命名表单控件以使用公共前缀,添加方括号以使PHP将其转换为数组,然后像其他数组一样循环数据:
'<td> <input type="number" name = "row[' . $row[number] . ']" id= "'. $row[number] . '" value="0">' .
然后:
foreach ($_POST['row'] as $number => $value) {
}
由于它是一个数组,因此您可以使用常用的东西,例如:
$rows = array_filter($_POST['row'], function($val){
return is_numeric($val) && $val>10;
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。