从动态生成的表单中检索数据

时间:2012-02-03 01:58:09

标签: php

我正在尝试使用动态创建的表单来编辑页面上的内容。我从数据库表中检索信息(在本例中为图像标题),并将其显示在准备编辑的文本区域中并保存回数据库。

这似乎可以完成组织和显示表单的工作:

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>';}

但得到了同样的结果。

2 个答案:

答案 0 :(得分:3)

以您的形式

name='caption'

必须是

name='caption[]'

以后你可以这样做:

foreach ($_POST['caption'] as $key => $value) {echo $key.'=>'.$value.'<br>';}

答案 1 :(得分:0)

您不能对所有字段使用相同的名称。你必须制作它们的数组。试试这个

 name='caption[]'