2011-04-06 41 views
2

我想用uploadData發送表單的附加數據使用scriptData,但它不會發送任何內容到後端PHP腳本。有人可以幫我嗎?下面是我想..用Uploadify發送表單數據的問題

的Javascript:

<script type="text/javascript"> 
$(document).ready(function() { 
    $("#fileUpload").fileUpload({ 
     'uploader': 'uploadify/uploader.swf', 
     'cancelImg': 'uploadify/cancel.png', 
     'script': 'uploadify/upload.php', 
     'folder': 'files', 
     'multi': false, 
     'displayData': 'speed', 
     'scriptData' : {'name' : $('#name').val()}, 
     onComplete: function (evt, queueID, fileObj, response, data) { 
      alert("Successfully uploaded: "+response); 
     } 
    }); 
}); 
</script> 

HTML:

Name: <input name="name" id="name" /><br /> 
<div id="fileUpload">You have a problem with your javascript</div> 
<a href="javascript:$('#fileUpload').fileUploadStart()">Start Upload</a> | <a href="javascript:$('#fileUpload').fileUploadClearQueue()">Clear Queue</a> 

upload.php的

(我曾經嘗試都POST和GET方法,沒有作品)。

$name = $_GET['name']; 
or 
$name = $_POST['name']; 

我會非常感謝您的幫助。

回答

0

我想你忘記了'fileDataName' : 'photo'

你也不必'method' : 'post'選項,你可以根據它訪問scrpitDataGETPOST

而在後端,您可以通過$_FILES['photo']訪問文件;

此外,您還需要檢查這些文件是否存在於其相對路徑中。

'uploader': 'uploadify/uploader.swf', 
'cancelImg': 'uploadify/cancel.png', 
'script': 'uploadify/upload.php', 
1

我知道這有點遲,但我試圖讓自己工作,並試圖做同樣的事情,你做了。

您不能使用jQuery選擇在Uploadify的初始設置得到「名」的價值:

'scriptData' : {'name' : $('#name').val()} 

這是一個時間問題。在評估jQuery選擇器時,頁面剛剛完成加載,並且'Name'文本框(我假設)是空的。上傳發生時不會重新評估。

但是您可以在任何時間更新scriptdata,包括上載發生之前:

$('#myUpload').uploadifySettings('scriptData', {'Id':$('#IdTextBox').val() }); 
$('#myUpload').uploadifyUpload(); 

這樣的話,你可以提取表單數據,並通過其與上傳一起。 這是一個最簡單的例子,它通過多個文件上傳變得更加複雜,但這應該足以讓某人開始。