我想删除在php中逐个更新的图像。
我使用以下代码来显示图像。单击删除按钮后,图像将从上传文件夹中删除。
法典
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" />';
}
图像圈.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。
在页面标题中包含 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']
我只是给出了使用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,并使用您的删除查询。我想没有必要解释这一点。