2009-12-08 50 views
0

進出口使用下面的jQuery ..上傳文件

function ajaxFileUpload(jobid) { 
    $("#loading") 
     .ajaxStart(function() { 
     $(this).show(); 
    }) 
     .ajaxComplete(function() { 
     $(this).hide(); 
    }); 

    $.ajaxFileUpload({ 
     url: 'addjobrpc.php', 
     secureuri: false, 
     jobID: jobid, 
     fileElementId: 'fileToUpload', 
     dataType: 'json', 
     success: function (data, status) { 
      $('#imageid').val(data.imageid); 
      if (typeof (data.error) != 'undefined') { 
       if (data.error != '') { 
        alert(data.error); 
       } else { 
        alert(data.msg); 
       } 
      } 
     }, 
     error: function (data, status, e) { 
      alert(e); 
     } 
    }) 

    return false; 

} 

我的形式看起來像這樣...

<form name="form" action="" method="POST" enctype="multipart/form-data"> 

我得到的文件名以$ _FILES [ 'fileToUpload'] [ '名稱'];但是如何獲得不屬於文件上傳的輸入?例如Jobid是一個隱藏的字段,但我似乎無法獲得addjobrpc中的值。

感謝

回答

1

我對這個插件並不熟悉,但在快速查看源代碼後,它似乎無法發送任何其他POST數據。

我建議使用this plugin,它可讓你做這樣的事情:

new AjaxUpload('#upload_button_id', { 
action: 'addjobrpc.php', 
name: 'fileToUpload', 
// Additional data to send 
data: { 
    jobID:jobid 
}, 
// Submit file after selection 
autoSubmit: true, 
responseType: "json", 
onComplete: <success function goes here> 
}); 

然後可以使用$_POST['jobID']檢索服務器上的數據。

+0

我第二你的假設。它看起來像這個插件是不可能的(除非你將後變量附加到請求URI作爲查詢字符串的一部分......但這是不正確的)。 – 2009-12-08 03:37:43

0

你有它設置然後方式「作業ID」被作爲一個參數ajaxFileUpload(),但沒有一個jQuery的AJAX功能,知道如何處理這一點。雖然,鑑於你提供的代碼示例,我真的不知道如何將任何數據發送到服務器。你能提供更多的代碼嗎?

+0

不管。我沒有意識到你正在使用jQuery插件。 – 2009-12-08 03:19:40

2

The particular plugin您使用似乎只支持一個指定文件類型的輸入元素而不是整個表格

所以我不認爲你可以傳遞其他元素。

+0

問題是數據未被髮送。 – 2009-12-08 03:33:55