2016-07-31 76 views
1

我有一個表單上傳圖像文件,然後通過ajax成功更新數據庫中的圖像值。但是,當我嘗試.load與0123上面的圖片標籤相呼應的profile_pic.php時,圖片未在網頁上更新。我不想刷新頁面。來自php的echo語句正在輸出已經存在於dom中的相同的src路徑。我需要它保持這種方式。任何人都可以推薦更好的方法?圖像不刷新jQuery加載

<div class="actor-profile-pic"> 
    <img id="profilepic" src="uploads/jgunzblazin">      
</div> 

<form id="file-form" name="uploadpic" class="infoHeader" enctype="multipart/form-data"> 
    <input type="hidden" name="MAX_FILE_SIZE" value="5242888" /> 
    <input type="file" name="image" /> 
    <input type="submit" name="uploadpic" value="Submit" /> 
</form> 

$(document).ready(function(){ 
    $("#file-form").on('submit',(function(e) { 
     e.preventDefault(); 
     $.ajax({ 
      url: "actor_profile.php", 
      type: "POST", 
      data: new FormData(this), 
      contentType: false, 
      cache: false, 
      processData:false, 
      success: function(data){ 
       $(".actor-profile-pic").load("../profile_pic.php #profilepic"); 
      }   
     }); 
    })); 
}); 
+0

那麼現在''profile_pic.php'應該發送什麼? Html或只是圖像鏈接?答案是否應該取代''?你的解釋有點難以遵循你所期望的。 – Rasclatt

+0

是的,響應用響應中的相同img標籤替換現有的img標籤。我認爲這是問題。如果src被替換爲相同的src,圖像將不會更新。 – Jgunzblazin

+0

我目前在$ username的路徑中設置了圖像名稱。所以上傳的任何圖片將始終具有相同的名稱。因此爲什麼圖像沒有更新。我敢打賭,如果我將圖像名稱設爲隨機名稱 - 它將起作用。 – Jgunzblazin

回答

0

因此,事實證明圖片並未更新,因爲我正在使用與/profile_pic.php相同的img src值更新img src標記。一旦我更改文件名稱的名稱,圖像更新成功。

0

我想,成功的上傳和數據庫插入後,你的PHP文件返回(回聲)圖片的相對路徑/文件名(如圖像/我-photo.jpg。);最終傳遞給成功回調函數的變量數據

在這種情況下,你也可以嘗試:

success: function(data){ 
    $(".actor-profile-pic img").attr("src",data); 
} 

請檢查這對你的作品。