Sending additional fields data with Uploadify
I want to send some additional (form) fields data with uploadify. For this purpose, I am using scriptData. For example, f开发者_运维问答ollowing code sends the static values of name and location field correctly.
<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':'JohnDoe', 'location':'Australia'}
});
});
</script>
However, as I have the input fields name and location, therefore I want to send the dynamic values. To do so, Im sending the values in ScriptData as following
'scriptData' : {'name' : $('#name').val(), 'location' : $('#location').val()}
And on upload.php, I'm trying
$name = $_GET['name'];
$location = $_GET['location'];
But it does not get any of the values. Please help me regarding this, how I can send additional fields data. Thanks.
Because val()
's are called when DOM is loaded, not when a user types the location and name in. You should use one of the events to set new values. The manual isn't clear about it, I think it must be onSelectOnce
event:
<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':'', 'location':''},
'onSelectOnce' : function(event,data) {
$("#fileUpload").uploadifySettings('scriptData', {'name' : $('#name').val(), 'location' : $('#location').val()});
}
});
});
</script>
Have you tried putting quotes around the value you wish to JSON encode? i.e. replacing $('#location').val()
with "\'"+$('#location').val()+"\'"
.
Here the code for uploadify 3.1
$(function() {
$('#file_upload').uploadify({
'formData' : {'id' : ''},
'debug': false,
'buttonClass' : 'g-button g-button-blue',
'swf' : '../uploadify/uploadify.swf',
'uploader' : 'ajax/my_upload_file.php',
'onUploadStart' : function(file) {
$('#file_upload').uploadify('settings', 'formData', {'id' : $('#id').val() });
}
});
});
I need to use it because I call my form data with json and then I must update uploadify id post parameter
You need to specify the method by which you're posting your variables:
In your uploadify config:
//...
'method': 'POST',
//...
精彩评论