2014-09-30 122 views
1

我有一些问题。ajax调用后更新图像

点击我用ajax旋转图像并保存新图像。一切都没有页面刷新。 问题是旧图像不会刷新并放置新的刷新图像。

另外新图像与旧图像具有相同的名称。

问题

我的问题是如何更新从文件夹IMG不刷新页面?只有在点击课程slika-rotiraj后。

HTML:

<div class="slika"> 
    <div class="slika-obrisi"></div> 
    <div class="slika-rotiraj"></div> 
    <img src="uploads/87b6f334f30717343acd69f3962142a0_542ad975e424d.jpg" /> 
</div> 

SCRIPT:

$(document).on("click", ".slika-rotiraj", function() { 
    var slika = $(this).next("img").attr("src"); 
    var slika1 = $(this).parent(); 
    var slika2 = $(this).next("img"); 
    $(this).next("img").attr("src", slika); 
    $.ajax({ 
     type: "POST", 
     url: "rotiraj.php", 
     data: { 
      slika: slika 
     }, 
     success: function(data) { 

     } 
    }); 
}); 

回答

2

你的意思是,像变了服务器端和你只是想迫使img标签来获取图像的新状态?简单地设置src要做到的是:

success: function(data) { 
    // which is your image? "slika2"? 
    // it's not really obvious, so I'll assume that for now 
    $(slika2).attr('src', slika); 
} 

如果没有令人耳目一新的形象,你可以添加一个“缓存断路器”,迫使它重新请求。事情如此简单:

success: function(data) { 
    $(slika2).attr('src', slika + '?' + new Date().getTime()); 
} 

这不会影响任何东西,它只是无害更改URL,并强制浏览器重新从服务器请求。

+0

我很欣赏你的答案,这个日期只适用于第一次点击,我旋转图像90deg。 ,所以第一次显示我的图像,但在下一次旋转时,不会显示 – 2014-09-30 16:48:18

+0

@NebojsaSapic:做一点调试。特别是哪里失败?是否在代码中调用了第二个单击事件?是否提出了AJAX请求?服务器的回应是什么?这行代码是否到达了?新请求是否有预期的其他网址?请具体说明。 – David 2014-09-30 16:49:48

+0

当我添加日期时发生失败,因为文件夹中的图像是有话题的,而当我第二次点击旋转时,php无法打开流,因为? + new Date()。getTime()名称 – 2014-09-30 16:54:21

1

给你的标签的ID和设置 'src' 中的价值您的成功函数内部属性ajax呼叫。

HTML

<div class="slika"> 
    <div class="slika-obrisi"></div> 
    <div class="slika-rotiraj"></div> 
    <img id="myimage" src="uploads/87b6f334f30717343acd69f3962142a0_542ad975e424d.jpg" /> 
</div> 

JS:

$(document).on("click", ".slika-rotiraj", function() { 
    var slika = $(this).next("img").attr("src"); 
    var slika1 = $(this).parent(); 
    var slika2 = $(this).next("img"); 
    $(this).next("img").attr("src", slika); 
    $.ajax({ 
     type: "POST", 
     url: "rotiraj.php", 
     data: { 
      slika: slika 
     }, 
     success: function(data) { 
      $("#myimage").attr('src', data); 
     } 
    }); 
}); 
+0

感谢您的答案,我很感激,但不工作,它不会刷新图像 – 2014-09-30 16:44:56

+0

@NebojsaSapic你从PHP脚本(rotiraj.php)返回什么?你能把它添加到你的问题吗? – thiag0 2014-09-30 17:06:07

0

尝试这样的事情如果图像总是同一个名字:

$('.slika img').attr('src', 'new path to image'); 

否则:

$('.slika img').attr('src', 'new path to image' + '?_=' + new Date().getTime()); 
+0

谢谢,和David的回答一样,同样的问题 – 2014-09-30 16:55:22

+0

您是否尝试过使用'?_ ='? – Ragnar 2014-09-30 16:58:01