0

我正在研究一种解决方案,该解决方案将帮助我将图像列表中的特定图像提交到 MySQL 数据库。

我的数据库包括以下内容:

数据库

  • 身份证(INT)
  • 照片(BLOB)
  • 字幕(VAR)

代码

我首先从列表中检索图像并给它们每个提交按钮。

foreach ($media->data as $data) {
  echo $pictureImage = "<img src=\"{$data->images->thumbnail->url}\">";
  echo "<form action='tag.php' method='post'>";
  echo "<input type='submit' name='submit' value='Click Me'>";  
  echo "</form>";
}

$pictureImage 解析数据 URL,然后将其放入实际图像中。提交按钮位于每个图像下方。

然后我正在制作它,以便在按下提交按钮时将其添加到数据库中。

if(isset($_POST['submit'])) {
  //Database code would be above the following
  $sql="INSERT INTO $usertable (image) VALUES ('$pictureImage')";
}

问题

我遇到了一个问题,我列表中的最后一张图像是提交到数据库的图像,而不是带有相应提交按钮的图像。如何使它使用相应的提交按钮抓取照片?

任何帮助将不胜感激。

4

3 回答 3

1

当您单击提交按钮时,您没有发布任何数据.. 我建议对于每个表单,您将有一个带有图像 url 的隐藏字段。像这样的东西:

<form action='tag.php' method='post'>
<input type="hidden" value="{$data->images->thumbnail->url}" name="pic"/>
<input type='submit' name='submit' value='Click Me'>
</form>
于 2013-08-01T23:15:32.277 回答
1

您需要在表单内的图像中包含任何标识符才能存储它。

例如,您可以尝试构建这样的表单:

foreach ($media->data as $data) {
  echo $pictureImage = "<img src=\"{$data->images->thumbnail->url}\">";
  echo "<form action='tag.php' method='post'>";
  echo "<input type='hidden' name='imageid' value='{$data->images->thumbnail->url}'>";
  echo "<input type='submit' name='submit' value='Click Me'>";  
  echo "</form>";
}

当您想将图像存储在表单提交中时,您实际上可以获取图像的标识符(在这种情况下,我使用了您发布的 URL):

if(isset($_POST['submit'])) {
  $sql="INSERT INTO $usertable (image) VALUES ('$_POST[imageid]')";
}
于 2013-08-01T23:16:53.120 回答
1

问题

foreach ($media->data as $data) {
   echo $pictureImage = "<img src=\"{$data->images->thumbnail->url}\">";
   echo "<form action='tag.php' method='post'>";
   echo "<input type='submit' name='submit' value='Click Me'>";  
   echo "</form>";
}

到此循环完成时,您将拥有循环中的最后一张图像作为 $pictureImage 的值。

所以当它到达这一点时,你的 $pictureImage 仍然是......最后一张图片。

if(isset($_POST['submit'])) {
  //Database code would be above the following
  $sql="INSERT INTO $usertable (image) VALUES ('$pictureImage')";
}

解决方案

我不确定您要保存什么数据值,因为现在它看起来像整个标签。但不管它是什么,你需要先把它放到一个表单域中......

foreach ($media->data as $data) {
    ..
    echo "<form action='tag.php' method='post'>";
    echo "<input type='hidden' name='imageurl' value='<img src=\"{$data->images->thumbnail->url}\">' />";
    ..
}

然后在脚本的 POST 部分中检索它:

if(isset($_POST['submit'])) {
   $imageurl = $_POST['imageurl'];
   //Database code would be above the following
   $sql="INSERT INTO $usertable (image) VALUES ('$imageUrl')";
}

这样,它不会总是列表中的最后一个值,而是您选择的值。

于 2013-08-01T23:17:26.850 回答