【发布时间】:2016-02-26 21:17:37
【问题描述】:
我有一个多维数组,并且在 foreach 循环中回显了键和值。我想在“id”(键)旁边有一个更新框来更新 id 值,并在“大小”(键)旁边有一个更新框来更新大小值
问题:: Bellow 是我的代码,输入框回显每个键的正确值,但是当我点击更新按钮时,它不会更新...
更新不必在 foreach 循环中,顺便说一句。我只是认为这会更容易
提前感谢所有帮助
代码
<?php
session_start();
$array=array(
'Homer' => Array
(
'id' => 111,
'size' => 54
),
'Marge' => Array
(
'id' => 222,
'size' => 12
),
'Bart' => Array
(
'id' => 333,
'size' => 3
)
);
// update if submit
if (isset($_POST["submit"]))
{
// i tired a number of things here but it was all errors
}
echo "<form method='post' action=''>";
// put the array in a session variable
if(!isset($_SESSION['simpsons']))
$_SESSION['simpsons']=$array;
// getting each array in a foreach loop
foreach( $_SESSION['simpsons'] as $character => $info) {
echo $character.': id is '.$info['id'].', size is '.$info['size'];
//add and update input box for each ' id ' and ' size '
?>
<!-- input for id -->
<input name="<?php $character ?>" value="<?php echo $info['id'] ?>">
<!-- input for size-->
<input name="<?php $character ?>" value="<?php echo $info['size'] ?>">
<?php
echo"<br/>";
}
?>
<!-- submit button for the form -->
<input class="inputbox" type="submit" value="Update value of key" name="submit"/>
</form>
【问题讨论】:
-
你只是忘了在你的输入
name属性中写echo。并且需要将name属性设置为数组。所以你输入的标签看起来像<input name="<?php echo $character ?>[]" value="<?php echo $info['id'] ?>">。 -
@hardiksolanki 即使他这样做了,他也会有两个同名的输入元素,它们不是收音机,所以从技术上讲,一个被覆盖了。他必须使用
[]括号 -
@FlorianMüller 检查我的更新答案。
-
@hardiksolanki 因此我在同一时刻添加了关于括号的句子;D
-
@FlorianMüller:在您发表评论之前,我已经更新了我的答案:D
标签: php arrays multidimensional-array foreach