2011-08-17 56 views
1

我需要加載一個由PHP腳本生成的圖像。 PHP腳本接受一個三維數組作爲參數並從中創建一個圖像。我如何通過ajax傳遞參數?我如何加載圖像?我如何使用ajax/jquery加載圖像?

+0

它是如何接受它,通過郵政/得到正確的?如果是這樣,以相同的格式發佈數據。更多的細節將有助於回答這個問題... – Henry

+1

Ajax不會將二進制數據加載到頁面中。 如果使用DATA-URI方案,則可以返回B64編碼流。 你是什麼意思「接受3D陣列」 – mplungjan

+0

@mplungjan,人們可以發回正常的URL到圖像,存儲在服務器上,因爲它們是異步加載的。 – katspaugh

回答

2

沒有辦法(除了一些真正有毛的<canvas>標籤魔法)將數據從Javascript移動到圖像中,但幸運的是,您不必。您只需爲PHP腳本生成URL並將其分配給Image和繁榮。

var img = new Image(); 
var img.src = "http://phphost.net/imagegenerate.php?array=3,1,2,3,21,1"; // or whatever 
+1

'new Image()'對我來說是新的。它適用於Chrome,但它也可以在IE6或IE7等其他瀏覽器中使用嗎?如果不是,我會推薦'document.createElement('img')'。 –

+0

這是古老的,應該在所有瀏覽器中工作。太糟糕了,我沒有提出這個建議。我確信我們需要首先解決3D數組問題 – mplungjan

+1

我相信'新的Image()'預測日期'document.createElement'幾年。 – Malvolio

-2

如何

document.write("<img src='http://www.aurl.com/generator.php?" + yourParams + "' alt='exciting image here' />") 
+0

非常差和僵化的想法。至少使用$(「#someContainer」)。append(「」).... – mplungjan

2

我已經做了類似的事情,但使用ASPX而非PHP,我使用的查詢字符串PARAMS生成圖像,和jQuery的圖像加載到在現有對象文件:

var chartRootURL = 'http://127.0.0.1/'; 
var chartQueryParameters = 'inst=APPL&w=900&h=200'; 
var url = chartRootURL + 'chartImage.aspx?' + chartQueryParameters + 
        '&ts=' + new Date().getMilliseconds(); 

var img = $('#chartimg').attr('src', url) 
        .load(function (response, status) { 
         $('#chartimg').show(); 
        }); 
+0

Ahem - 是不是隻是在服務器上而不是客戶端上生成的URL? – mplungjan

+0

不,這兩行都是javascript並且在客戶端執行,變量chartQueryParameters構建爲包含寬度,高度,請求的工具,學習等等,這些都是在客戶端構建的。我會在我的示例中添加一行以更清晰。 – tonycoupland