形式: $ headerValues =阵列();
$headerValues[1][2]="Test";
...
....
echo "<input type=\"hidden\" name=\"ArrayData\" value=\"$headerValues\"/>";
echo "<input type=\"submit\" name=\"submit\" value=\"Submit\" />";
如何在FORM POST上读取headerValues,当我使用此代码时,我将其视为ARRAY
foreach (array_keys($_POST) as $key) {
$$key = $_POST[$key];
print "$key is ${$key}<br />";
print_r(${$key});
}
答案 0 :(得分:3)
问题是你输出字符串“ARRAY”作为字段的值。这是在PHP中将数组转换为字符串时发生的情况。下次遇到类似问题时请检查HTML源代码,这是调试HTML时非常关键的一步。
请改用:
echo "<input type=\"hidden\" name=\"ArrayData\" value=\"", implode(' ', $headerValues), '"/>';
你处理输入的方式也是不必要的复杂,这就足够了:
foreach($_POST as $key => $value)
echo "$key is $value<br />";
答案 1 :(得分:0)
您可以使用:
$headerValues=htmlspecialchars(serialize(array('blah','test')));
echo "<input type=\"hidden\" name=\"ArrayData\" value=\"$headerValues\"/>";
echo "<input type=\"submit\" name=\"submit\" value=\"Submit\" />";
获取
$value = unserialize($_POST['ArrayData']);
答案 2 :(得分:0)
您需要写出多个<input name="ArrayData[]">
元素,每个值一个。空方括号表示PHP应该在提交表单时将每个值存储在数组中。
$headerValues=array('blah','test');
for ($headerValues as $value) {
echo "<input type=\"hidden\" name=\"ArrayData[]\" value=\"$value\"/>";
}
然后$_POST['ArrayData']
将是一个可以循环的数组:
foreach ($_POST['ArrayData'] as $i => $value) {
echo "ArrayData[$i] is $value<br />";
}