我真的在撕扯我的头发,我想知道是否有人能看出我做错了什么。我有一个填充阵列的表格"排练"。到现在为止还挺好。如果在我按下提交后,我恢复了排练的值,我可以获得变量的print_r,但变量本身没有内容所以:
$rhearsal = $_POST['rehearsal'];
foreach($rhearsal as $row) {
print_r($row);
echo "<br>plan:" . $row->plan . "<br><br>";
}
给出输出:
Array (
[Name] => A***** M*****
[Rehearsal_no] => 1
[Rehearsal] => Spring15-150106-1900
[plan] => Yes
[actual] => Yes
)
plan:
换句话说,当我使用print_r打印它时,$row
中存在该变量,但当我尝试使用$row->plan
访问它时,它具有空值。
我之前已经使用变量做了很多次,但没有使用输入表单。如果有任何帮助,输入表单的格式为:<input type='hidden' name='rehearsal[$counter][Name]' value='$usern'>
其中$counter
是递增计数器。
任何人都有任何想法 - 我浪费了一天试图解决这个问题 - 以不同方式打字和重新输入。谢谢:))
答案 0 :(得分:4)
将您的代码更改为:
$rhearsal = $_POST['rehearsal'];
foreach($rhearsal as $row) {
print_r($row);
echo "<br>plan:" . $row['plan'] . "<br><br>";
}
更重要的是,这一点:
$row['plan'];
由于$row
是一个数组,你可以这样抓住它。
使用->
抓取对象。
答案 1 :(得分:0)
如果您希望使用对象表示法访问$row
中的值,则可以将$row
转换为对象:
$rhearsal = $_POST['rehearsal'];
foreach($rhearsal as $row) {
print_r($row); // here $row is an array()
$row = (object)$row;
print_r($row); // and now it's an object (stdClass)
echo "<br>plan:" . $row->plan . "<br><br>"; // this works as expected
}