2013-06-29 112 views
1

我有一個可編輯的動態生成的表格。點擊表格中的任何單元格後,我可以更改其文本。如何製作帶有文件字段的隱藏表格

在一列中顯示圖像。當用戶點擊它時,我將該列的html更改爲<input type='file'>並觸發點擊,從而使用戶選擇要上載的文件作爲圖標。

在表的最後一列中,我有一個提交按鈕。如果用戶進行了一些更改並按下提交,我必須選取整行(一些文本字段和一個文件字段),並將所有內容添加到包含用戶選擇的文件的表單中,並將其發送到python腳本以上載到s3服務器。

我的問題是:如何發送此表單?

我目前正在使用腳本,但它不工作,因爲它只發送文本,因爲request.Files在python(django)腳本端變爲空。

function update(a) { 
    try { 
     var button = $(a); 
     var row = $(button.parent()); 
     var rowcount = button.parent().parent().parent().children().index(button.parent().parent()); 
     var filerow = ''; 
     var formrow = new Array(); 
     var rowkey = new Array('Topic', 'TopicDescription'); 
     var cnt = 0; 
     var form = $('#dyno_form'); 
     row.siblings().each(function() { 
      if ($(this).find($('input:file')).length > 0) { 
       $(this).find($('input:file')).appendTo($(form)); 
      } else if ($(this).find($('img')).length == 0) { 
       formrow[cnt++] = '<input type="text" value="' + $(this).html() + '" name="' + rowkey[cnt - 1] + '"/>'; 
      } 
     }); 
     $(form).append(formrow[0]); 
     $(form).append(formrow[1]); 
     $(form).submit(); 
    } catch (a) { 
     alert(a); 
    } 
} 

這裏是HTML:

<form id='dyno_form' action='' method="post" style="visibility:hidden">{% csrf_token %}</form> 

我如何去這樣做呢?

+1

你的表單是否有'enctype =「multipart/form-data」'? – zeroflagL

+0

不,我不應該包括它嗎? – Sohaib

+0

如果您想上傳文件,則必須提供。 – zeroflagL

回答

1

如果要上傳文件,form元素需要具有正確的enctype屬性,且方法必須是post

<form enctype="multipart/form-data" method="post" ... 

否則只會上傳您輸入的值。