如何自定义JQuery Filedrop来发送动态的post数据变量?

时间:2011-11-14 17:10:34

标签: jquery variables post

我正在使用教程中使用的优秀Jquery-Filedrop [weixiyen],我遇到了一个试图发送动态POST变量的问题,解释如下:

我有一个html表单选择下拉列表(photo_tab_index),用户可以选择幻灯片编号(例如1-5),然后选择用户将照片放到上传到Web服务器的Dropbox画布。

在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”字段,但我不确定如何引用它?

2 个答案:

答案 0 :(得分:9)

因此,对于那些有相同问题的人,可以使用示例param2函数在上传时计算POST变量,所以:

data: {
   param2: function(){
       var slideshow = document.getElementById('photo_tab_index').value;     
       return slideshow; // calculate data at time of upload,           
   },     
},

答案 1 :(得分:0)

优异。它对我们很有帮助。是的,为了获得动态数据的正确价值,您需要做的是附加一个新函数并返回您期望的函数。非常感谢。