这可能是一个愚蠢的问题,但我在这里迷路了。我需要使用POST变量将包含一些数据的数组发送到另一个PHP文件。这是我的表格:
<form action="test.php" method="post">
<label name="html[]" hidden><?php echo $array; ?></label>
<input type="submit" value="submit">
</form>
这是test.php
<?php
$html = $_POST['html'];
for($i = 1; $i<=9; $i++){
echo $html[$i];
}
?>
所以这就是我尝试过的,但它没有显示任何东西。请帮忙
答案 0 :(得分:3)
您需要创建一些具有相同名称的输入元素,每个输入元素都有一个数组项作为其值:
<?php foreach ($array as $item) : ?>
<input type="hidden" name="html[]" value="<?= htmlspecialchars($item); ?>" />
<?php endforeach; ?>
要记住的重点:
$item
必须始终是标量值(字符串,整数等)。你不能用这种技术零碎传递数组。htmlspecialchars
完成的,<input type="hidden" name="html"
value="<?= htmlspecialchars(serialize($array)); ?>" />
必须知道您的输出编码才能正常工作(查找其第三个参数)。还有一种替代方法可用于通过序列化逐步传递数组:
$html = unserialize($_POST['html']);
然后你会在接收端反序列化它:
{{1}}
我主要将此选项包含在完整性中,因为在实践中,会话变量是在请求之间传递复杂状态的更好方法。
答案 1 :(得分:1)
是否有必要将数组的数据放在隐藏字段中?您可以将数组存储在$ _SESSION中并访问它。顺便说一下,我认为你有问题,可以提交标签,在这种情况下你必须将数据放入type =“hidden”的输入字段。