2011-10-08 100 views
1

file.phpjQuery的AJAX - POST数据到IMG标签

<?php 
    $variable = 'mainImage'; 
?> 

<div> 
    <img src="image.php"> 
</div> 

<input type="button" onClick=""> 

我努力做到以下几点:

当点击该按钮$变量应被传递到image.php和图像应该相应地重新加载。 是的,我知道我们可以将src更新为image.php?variable = mainImage。 ($ _GET)

但是可以通过$ _POST发送$变量而不刷新页面,但只刷新图像?

回答

0

当然,你可以使用jQuery来实现这一点。我建议在做这件事之前给你的图片一个id,这样我们可以选择那个特定的图片并抓取源代码,这样做。

<img id="main-image" src="image.php"> 

$(function(){ 
    var main_image = $('#main-image'); 
    var url = main_image.attr('src'); 
    $.post(url, { variable: '<?php echo $mainImage ?>' }, function(data){ 
     main_image.attr('src', data); 
    }) 
}); 
+1

请注意,image.php的响应是一个包含二进制数据的头文件,因此您的示例中的数据是二进制文件,无法分配给src。或者,也许我误解了一些东西?感谢您的评论。 – acoder

2

你或许可以做到这一点使用data URIs得到的东西,如:

// Instead of simply storing the URL as the src attribute, 
// execute the post and shove the data into a data URL 
$.post('image.php', {variable: 'value'}, function(data) { 
    image.src = "data:image/jpeg;base64," + data; 
}); 

也可能有一些在ajaxTransport文档了解如何更紧密地集成这些功能的minimal image transport部分一些有用的信息。