2011-10-08 182 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部分一些有用的信息。