【问题标题】:Delete image from array on click with php使用php从数组中删除图像
【发布时间】:2017-06-25 00:57:34
【问题描述】:

当用户点击图片时,如何从数据库中删除图片。

我有一个输入字段,将图像链接放入一个表格中,每个链接用逗号分隔..

<input id="galleryImgs" type="file" multiple="multiple" name="files[]">

这就是图像数组在 post_gallery_img 数据库列中的外观。

Img1.jpg,Img2.jpg,Img3.jpg,Img4.jpg,

我正在从数据库中调用图像并使用此 php 代码显示它们。

$query = "SELECT post_gallery_img FROM posts WHERE post_id = $get_post_id";
$select_gallery_imgs = mysqli_query($connection, $query);

while($row = mysqli_fetch_assoc($select_gallery_imgs)) {
    $post_gallery_img = $row['post_gallery_img'];

    $post_gallery_img = explode(',', $row['post_gallery_img']);

    foreach($post_gallery_img as $out) {
       echo '<img id="editPostGalleryImgs" src="../userImages/' . $out . '" alt="Post Image">';
    }
}

这就是用户的样子

现在我的目标是让用户单击第二个图像并将其从数组中删除,当单击“更新帖子”时,post_gallery_img 列将更新为新数组。

我有一个类似这样的更新查询。

$implodeArray = implode(',', array_filter($post_gallery_img));

$query = "UPDATE posts SET post_gallery_img = CONCAT('{$implodeArray}' , ',') WHERE post_id = $get_post_id ";

$delete_img = mysqli_query($connection, $query);

【问题讨论】:

    标签: php mysql sql arrays mysqli


    【解决方案1】:

    看来你可以用一些 jQuery 来做到这一点。

    1. 将图片和“更新帖子”按钮放入表单中。
    2. 在表单中添加隐藏的复选框,每个图像一个。将复选框的 value 属性设置为与图像名称相同 - Img1.jpg、Img2.jpg 等。将所有复选框默认设置为“已选中”
    3. 为图片添加一个 jQuery 点击处理程序,这样:当点击图片时,它对应的隐藏复选框将被取消选中。
    4. 提交表单后,获取复选框的值并更新您的 post_gallery_img 字段。

    【讨论】:

      【解决方案2】:

      您可以从 PHP 中删除图像,然后使用新值更新数据库中的字段:

      <?php
      $before = "image1,image2,image3,image4";
      $image_to_remove = $_GET['image_to_delete'];
      $images_list = explode(",", $before);
      $new_images_list = array();
      foreach($images_list as $img){
          if($img == $image_to_remove){
              continue;
          }
          $new_images_list[] = $img;
      }
      $after = implode(",", $new_images_list);
      
      $query = "UPDATE posts SET post_gallery_img = '$after' WHERE post_id = $get_post_id ";
      

      之前的代码不是一个稳定的版本,你必须适应你的需要。

      更新:看看我所做的更新,现在您可以使用全局变量 $_GET 获取要删除的图像。

      如果您创建这样的链接...

      <a href="some.php?image_to_delete=YOUR_IMAGE_NAME">Remove image</a>
      

      ... Yo 将在 $_GET['image_to_delete'] 中收到要删除的图像的名称。

      【讨论】:

      • 如何获取用户点击删除的具体图片?
      • 您可以使用全局变量 $_GET 获取图像。我会更新我以前的代码给你看。
      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 2012-03-05
      • 2013-11-17
      • 2018-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      相关资源
      最近更新 更多