gpt4 book ai didi

PHP:将表行作为表单中的隐藏元素传递

转载 作者:行者123 更新时间:2023-11-29 07:08:49 29 4
gpt4 key购买 nike

我正在尝试将 SELECT 查询的结果作为表单中的隐藏输入元素传递。实际上,我正在为结果中的每一行创建一个表单。

我知道可以在表单中传递隐藏数组,因此我认为它也应该可以传递表格的一行。

这是处理它的代码片段:

$res = $conn->query($query);
while($row = $res->fetch()) {

echo '<form action="action.php" method="post">';

foreach ($row as $element) {
echo '<input type="hidden" name="row[]" value="'.$element.'">';
}

echo '<input type="submit" name="delete" value="Delete">';
echo "</form>";
}

现在,action.php 脚本只打印接收到的行:

<?php
echo "<pre>"; print_r($_POST['row']); echo "</pre>";
?>

在mysql中查询的结果为

+--------+-------------+-----------+----------+------------+
| numero | id_producto | id_tienda | cantidad | f_pedido |
+--------+-------------+-----------+----------+------------+
| 7 | IXUS115HSAZ | 3 | 2 | 2015-10-01 |
+--------+-------------+-----------+----------+------------+
1 row in set (0.01 sec)

但是action.php中该行的print_r将每个字段加倍:

Array
(
[0] => 7
[1] => 7
[2] => IXUS115HSAZ
[3] => IXUS115HSAZ
[4] => 3
[5] => 3
[6] => 2
[7] => 2
[8] => 2015-10-01
[9] => 2015-10-01
)

我的错误一定很明显,但我找不到它在哪里。

最佳答案

你显然使用了PDO

正如您从 manual 中看到的那样- PDO fetch 方法将 fetch_style 作为第一个可选参数。

默认情况下它是 PDO::FETCH_BOTH

returns an array indexed by both column name and 0-indexed column number as returned in your result set

因此,您需要将参数传递给 fetch,无论是 PDO::FETCH_ASSOC 还是 PDO::FETCH_NUM:

while($row = $res->fetch(PDO::FETCH_ASSOC)) {

// ...

// use `$field_name` to use database field name
foreach ($row as $field_name => $element) {
echo '<input type="hidden" name="row[' . $field_name . ']" value="'.$element.'">';
}

// ...
}

关于PHP:将表行作为表单中的隐藏元素传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40597106/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com