我使用使用tutorialzine優秀的jQuery的Filedrop [weixiyen]和我卡在嘗試發送動態POST變量的問題,解釋如下:如何自定義JQuery Filedrop發送動態發佈數據變量?
我有一個HTML表單選擇下拉( photo_tab_index),用戶可以選擇一個幻燈片數字(比如1-5),然後選擇一個Dropbox畫布,用戶可以將他們的照片放到上傳到Web服務器上。
在filedrop的javascript我有以下:
$(function(){
var dropbox = $('#dropbox'),
message = $('.message', dropbox);
var slideshow = document.getElementById('photo_tab_index').value;
dropbox.filedrop({
// The name of the $_FILES entry:
paramname:'pic',
data: {
param1: slideshow, // send POST variables
},
...
// Called before each upload is started
beforeEach: function(file){
if(!file.type.match(/^image\//)){
alert('Only images are allowed!');
return false;
}
},
...
我的問題是JavaScript讀取photo_tab_index的值時,它呈現頁面(並因此總是發送爲「1」)但我真正想要的是它可以讀取照片放在下拉框上的幻燈片下拉值。在我有限的JQuery知識中,我有一種感覺,我想更新beforeEach:函數中的dropbox.filedata「data:param1」字段,但我不知道如何引用它?
DOH!我想我可能找到了回頭看原始使用示例的答案。您可以指定 data:{ param1:'value1', param2:function(){ return calculated_data; //在上傳時計算數據 }, }, 但是calculate_data從哪裏來?這是一個類似beforeEach的函數嗎? – Darrell
是的,事實上,得到它......所以改變param1爲一個函數(),然後在大括號內調用「var slideshow = document.getElementById('photo_tab_index')value;」 ...完美。對不起,浪費時間,但寫出來的過程會清除大腦。 – Darrell