图像在jquery加载时没有刷新

时间:2016-07-31 23:46:47

标签: php ajax forms

我有一个上传图像文件的表单,然后通过ajax成功更新数据库中的图像值。但是,当我尝试.load回复上述图片代码的profile_pic.php时,图片不会在网页上更新。我不想刷新页面。来自php的echo语句输出的是dom中已存在的相同src路径。我需要它保持这种方式。任何人都可以推荐更好的方法吗?

<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"); 
            }           
       });
    }));
});

2 个答案:

答案 0 :(得分:0)

我认为成功上传和数据库插入后你的php文件会返回(echos)图片的 relative-path / filename (例如images / my-photo.jpg );最终传递给成功回调函数的数据变量。

在这种情况下,您还可以尝试:

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

请检查这是否适合您。

答案 1 :(得分:0)

因此,事实证明图像没有更新,因为我正在使用与/profile_pic.php相同的img src值更新img src标记。一旦我更改了文件名,图像就会成功更新。