2

我想删除在 php.ini 中一张一张上传的图片。

我使用以下代码显示图像。单击删除按钮后,图像将从上传文件夹中删除。

代码

ImageLap.tpl.php

foreach ( $mainfile as $files ) {
     echo '<img src="'.$files.'" width="100" height="65">';
     echo '<input type="hidden" value="'.$files.'" name="delete_file" />';
     echo '<input type="submit" value="Delete image" />';
 }

ImageLap.php

  if ( array_key_exists ('delete_file', $_POST ) ) {
       $filename = $_POST['delete_file'];
       if ( file_exists ( $filename ) ) {
           unlink( $filename );
           echo 'File '.$filename.' has been deleted';
       }
  }

此代码运行良好。但每次删除文件时都必须刷​​新页面。我需要帮助来删除文件而不刷新页面。我听说 ajax 用于此。但我没有 ajax 知识

请帮我在这段代码中实现 ajax。

4

2 回答 2

2

在页面标题中包含 jquery。然后更换

echo '<input type="hidden" value="'.$files.'" name="delete_file" />';
echo '<input type="submit" value="Delete image" />';

echo '<input type="hidden" value="'.$files.'" name="delete_file" id="delete_file" />';
echo '<input type="button" value="Delete image" onclick="delete_image()"/>';

然后编写一个javascript函数来调用ajax。

function delete_image()
{
  var status = confirm("Are you sure you want to delete ?");  
  if(status==true)
  {
    var file = $("#delete_file").val();
    $.ajax({
      type:"POST",
      url:"ImageLap.php",
      data:{file:file},
      success(html){
       alert('Deleted');
      }
    });
  }
 }

然后在 php 访问文件中作为$_POST['file']

于 2013-09-16T05:08:17.137 回答
0

我只是给出一个使用 AJAX 的敏锐想法:

这是你的循环:

foreach ( $mainfile as $files ) {
    echo '<img src="'.$files.'" width="100" height="65">';
    echo '<input type="hidden" value="'.$files.'" name="delete_file" />';
    echo '<input type="button" value="Delete image" onclick="delete_post(<?php echo $YourPrimaryKey; ?>);" />';
}

这是您的 JQuery Ajax 代码:

function delete_post( id ) {
    m = confirm("Are you sure you want to delete this post?");  
    if( m == true ) {
       $.post('ajax_files/ImageLap.php.php', {post_id:id}, // Set your ajax file path
       function( data ) {
         $('#yourDataContainer').html( data ); // You can Use .load too
       });
    } else {
       return false;
    }
}

现在创建一个简单的 Ajax 文件,其中使用$_POST获取您通过POST从 ajax 调用发送的主键 ID并使用您的删除查询。我想不需要解释这一点。

于 2013-09-16T05:05:51.173 回答