【问题标题】:How to post data two times in a row with html forms and php如何使用html表单和php连续两次发布数据
【发布时间】:2014-06-12 21:08:32
【问题描述】:

我有一个可以将图片上传到我网站图库的页面。在我遇到这个问题之前,将 一个 图像上传到图库,包括描述,效果非常好。我使用了一个 html 表单来制作上传页面和 PHP 来将图像上传到服务器并将数据导入数据库。然后根据我的数据库中是否有图像数据显示画廊。

所以这个方法效果很好。现在我想一次发布多张图片,这让它变得有点困难,因为现在我需要为上传过程中包含的每张图片添加文本区域。为此,我不得不在上传过程中再迈出一步,换一个页面。

首页: 以 html 形式收集图像数据,这里没有问题。如果我愿意,我可以在下一页上回显所有数据。

第二页:从第一页获取数据并根据包含的图像数量写出文本区域的代码。这行得通,我可以将下一页上的描述作为数组回显。每张图片都应该有描述。所以我为此使用了另一种形式,因为我还需要收集描述。

    <form action='add4.php' method='post'       enctype='multipart/form-data'> 
<?php   $imgcount = count($_FILES['filename']['name']);

            for($a=0;$a<$imgcount;$a++) {
                    echo            "<label for='text'>Beskrivning av bilden " .$_FILES['filename']['name'][$a]. ":</label><br />           <textarea rows='5' cols='40' name='description[]' multiple='multiple' id='description'></textarea><br /><br />";        } ?>


    <input type='hidden' name='filename[]' value='No idea what to write here!' multiple='multiple'>
    <label for='password'>Lösenord:*</label><br />
    <input type='password' name='password' id='password' required><br />
    <input type='submit' name='submit' value='Upload files' id='submit'><br /><br />
    <label>* Required fields</label>
    </form>

第三页:获取图像数据每个图像的描述。然而,这个页面还没有 100% 完成。我可以写出描述,但不能写出图像数据,因为我不知道如何通过表单再次发送它们。我尝试使用 print_r 但显然它并没有以这种方式将其保留为数组,所以现在我没有想法了。

如果有必要,我知道一些 javascript,但不知道 jQuery。

我怎样才能保留从第一页到最后一页的所有图像数据?请记住,我还是个新手。如果问题超级容易解决,也不会感到惊讶... ;)


编辑:

所以今天我尝试为此使用 cookie,它确实奏效了。我可以使用 print_r($_COOKIE) 并在最后一页打印出整个数组。但是当我试图用 echo 写出一个特定的值时,它并没有真正起作用......我四处寻找解决方案,但没有找到任何东西。 当我使用多维数组时,$_COOKIE[] 的语法是什么?

我试着写出这样的例子:

echo $_COOKIE['filename']['name'][0];
echo $_COOKIE[['filename']['name'][0]];

等等……

【问题讨论】:

  • 您对这些图像的最终目的是什么。将它们保存到文件系统?
  • @lagbox 他​​们最终会永久保存在服务器上。

标签: php html forms post upload


【解决方案1】:

第一个表单提交后:

我的建议是将上传文件保存到文件系统。将这些文件名添加到 db. 然后,您可以遍历这些图像以将它们添加到下一页以供参考,并为每个图像添加文本字段。为这些文本字段分配一个名称,例如 imagetext[$img_id]

第二个表单提交后:

您可以使用通过表单传递的 id 来更新图像记录及其描述。 id 是 $_POST['imagetext'] 数组的键。

解决这个问题的方法之一。

【讨论】:

  • 我也想过这个,可能是个好主意。但是,如果我将所有数据发送到数据库的最后一步失败了怎么办?然后我必须手动删除文件,拥有我根本不在网站上使用的图像,或者手动将所有数据写入我的数据库。但我想这对我来说只是一个问题,因为我确信如果数据库同步出现问题,有办法删除上传的文件。 :P
  • 图像已保存,它们很好..如果出现错误,您可以再次显示第二个表单再试一次
【解决方案2】:

我不确定这是否可行,但请尝试将其保存在 cookie 中,然后在最后一页将其取回。

【讨论】:

  • 嗯,好吧,我会试着调查一下。事情是,我正在学习,因为我正在寻找解决方案。例如,我从未使用过 cookie。我已经看到一个人也可以使用会话,但不太确定如何。感谢您的建议! :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-02-09
  • 1970-01-01
  • 2011-05-05
  • 2012-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多