【发布时间】:2016-07-25 09:34:42
【问题描述】:
我正在使用以下方式通过 POST 发送多维数组:
<form action="fixtures.php" method="POST">
<input type="hidden" name="day" value="<?= $day ?>">
<input type="hidden" name="month" value="<?= $month ?>">
<input type="hidden" name="year" value="<?= $year ?>">
<input type="hidden" name="league" value="<?= $league ?>">
<input type="hidden" name="addFixtures" value="1">
<?php
for($i = 0; $i < count($fixtures); $i++){
$team_a_name = $fixtures[$i]['team-a-name'];
$team_b_name = $fixtures[$i]['team-b-name'];
$fixtDate = $fixtures[$i]['Date'];
echo "<input type='hidden' name=\"fixtures[$i]['team-a-name']\" value='$team_a_name'>";
echo "<input type='hidden' name=\"fixtures[$i]['team-b-name']\" value='$team_b_name'>";
echo "<input type='hidden' name=\"fixtures[$i]['date']\" value='$fixtDate'>";
}
?>
<input type="submit" value="Add Fixtures">
</form>
但是,当我尝试访问存储在 $_POST['fixtures'] 中的值时,使用以下命令:
if(isset($_POST['addFixtures'])){
print_r($_POST['fixtures'][0]);
echo "<br><br>";
print($_POST['fixtures'][0]['date']);
exit;
}
我得到这个输出:
数组(['team-a-name'] => TEAM A ['team-b-name'] => TEAM B ['date'] => 5-4-2016)
注意:未定义的索引:日期在 /Applications/XAMPP/xamppfiles/htdocs/soccerdome/fixtures.php 上线 33
如果我尝试访问“team-a-name”或“team-b-name”,则会出现相同的通知。
当$_POST['fixtures'][0] 上的print_r 清楚地显示它们在数组中时,为什么我不能访问这些值!
编辑
当打印出$_POST[] 时,我得到:
Array
(
[day] => 5
[month] => 4
[year] => 2016
[league] => prem
[addFixtures] => 1
[fixtures] => Array
(
[0] => Array
(
['team-a-name'] => TEAM A
['team-b-name'] => TEAM B
['date'] => 5-4-2016
)
[1] => Array
(
['team-a-name'] => TEAM C
['team-b-name'] => TEAM D
['date'] => 5-4-2016
)
[2] => Array
(
['team-a-name'] => TEAM A
['team-b-name'] => TEAM D
['date'] => 12-4-2016
)
[3] => Array
(
['team-a-name'] => TEAM B
['team-b-name'] => TEAM C
['date'] => 12-4-2016
)
[4] => Array
(
['team-a-name'] => TEAM A
['team-b-name'] => TEAM C
['date'] => 19-4-2016
)
[5] => Array
(
['team-a-name'] => TEAM D
['team-b-name'] => TEAM B
['date'] => 19-4-2016
)
)
)
编辑 2
由于某种原因,它现在可以工作了!我不知道怎么回事,只是多次刷新页面,错误消息消失了,并且打印了 POST 中的值!
【问题讨论】:
-
您在日期
$fixtDate = $fixtures[$i]['Date'];中使用大写字母“D”并在输入名称中使用“日期” -
尝试从表单输入中的键名中删除单引号。将 name=\"fixtures[$i]['team-a-name']\" 更改为 name=\"fixtures[$i][team-a-name]\"
-
删除这样的引号:-
echo "<input type='hidden' name=\"fixtures[$i][team-a-name]\" value='$team_a_name'>"; -
@GhulamAli 那么
team-a-name是如何工作的? -
@PraveenKumar 我尝试删除引号并显示相同的错误
标签: php post multidimensional-array