已删除的图像仍在显示

时间:2021-06-21 23:24:56

标签: javascript php jquery

出于某种原因,我的网站仍然显示已从指定文件夹中删除的图像,我不知道为什么会发生这种情况以及如何解决。

过程: 当删除所有管理员按钮被按下时,它调用一个 PHP 函数来截断表管理、adminimg 和登录,从与表管理中的 id 相关的文件夹中删除所有图像unlink(),并在管理表上创建一个 id=1(auto_increment) 和 name="abc" 的注册表。

问题:我有一个 jQuery 函数,它在文本框上显示特定的管理信息,验证文本框中 adminID 的值,并显示与该 ID 关联的图像。执行上述过程后,当我调用 jQuery 函数时,它正确显示了 id=1 和 name="abc",但在截断表格之前显示了与 id=1 的管理员关联的已删除图像。

jQuery 函数(如有必要)

$(".btneditadmin").click( e =>{
  let textvalues = displayDataAdmin(e);
  let id = $("input[name*='idadmin']");
  let name = $("input[name*='nameadmin']");

  id.val(textvalues[0]);
  nome.val(textvalues[1]);

  var img_url = 'Images/Administration/admin'+$("#idadmin").val()+'.jpg';
  $("#admin-image").attr('src',img_url);
});

function displayDataAdmin(e) {
  let id = 0;
  const td = $("#tbody tr td");
  let textvalues = [];

  for (const value of td){
      if(value.dataset.id == e.target.dataset.id){
         textvalues[id++] = value.textContent;
      }
  }
  return textvalues;
}

1 个答案:

答案 0 :(得分:0)

如果您确定该图像不再存在,那么这是缓存问题,这样的事情可以解决

let img_url = 'Images/Administration/admin'+$("#idadmin").val()+'.jpg';
img_url += '?' + new Date().getTime() ; // cache killer
$("#admin-image").attr('src', img_url);

但是,无论如何您都在调用该函数,因此我建议进行加载/错误检查

​$('#admin-image').load(function(){ // when loaded successfully
   console.log('success');  
}).error(function(){  // when theres an error
   $(this).remove() 
    // or you could replace it with a default image  
   $(this).attr('src', '/images/default.jpg');
});​​​​​