我正在尝试使用动态创建的表单来编辑页面上的内容。我从数据库表中检索信息(在本例中为图像标题),并将其显示在准备编辑的文本区域中并保存回数据库。
这似乎可以完成组织和显示表单的工作:
echo"<form action='edit.php' method='post'>";
for ($limit;$limit<=$all_values;$limit++)
{
echo "<textarea cols='15' rows='3' name='caption' value='$caption_arr[$limit]'>
$caption_arr[$limit]</textarea><br>
}
echo "<br><input type='submit' value='Edit' name='pictureEedit'></form>";
但是从这里出了点问题。当我在edit.php中输入它时:
$caption=$_POST['caption'];
echo $caption;
我只从最后一个字段中获取标题。当我在表单中添加复选框时,一切正常,前提是我只检查了1但如果我检查了2个或更多,它只会给我最后一个的值。
我也试过这个:
$caption[$x]=$_POST['caption'];
foreach ($caption as $key => $value) {echo $key.$value.'<br>';}
但得到了同样的结果。
答案 0 :(得分:3)
以您的形式
name='caption'
必须是
name='caption[]'
以后你可以这样做:
foreach ($_POST['caption'] as $key => $value) {echo $key.'=>'.$value.'<br>';}
答案 1 :(得分:0)
您不能对所有字段使用相同的名称。你必须制作它们的数组。试试这个
name='caption[]'