微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

PHP / HTML输入类型编号

有什么办法可以让我通过大量的输入类型编号进行迭代,而只打印出大于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;
});

Demo

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。