The problem below is that when the function is initiated, of course, MyInputVariable
is empty.
<?php $timestamp = time();?>
$(function () {
$('#file_upload').uploadifive({
'auto': false,
'dnd': true,
'checkScript': 'check-exists.php',
'formData': {
'timestamp': '<?php echo $timestamp;?>',
'token': '<?php echo md5('unique_salt' . $timestamp);?>',
'MyNumber': $('#MyInputVariable').val(),
},
'queueID': 'queue',
'uploadScript': 'upload.php',
'onUploadComplete': function(file, data) {console.log(data);}
});
});
There must be a way to instigate onUpload
, onUploadComplete
, onUploadFile
or something to update formData
, but I am at a loss as to how to do that.
Please note that this is uploadiFIVE, not uploadify. The functions/methods differ significantly, and solutions will probably not apply to both.
After many hours of experimentation with misleading solutions on the uplodifive forum, this is the solution.
In your HTML anchor tag:
<input id="file_upload" name="file_upload" type="file" multiple="true">
<a style="position: relative; top: 8px;" href="javascript:$('#file_upload').uploadifive('upload')">Upload Files</a>
Change the anchor tag to:
<a style="position: relative; top: 8px;" href="javascript:uploadFiles();">Upload Files</a>
Completely eliminate the formData setting from the initial function call so it then looks something like this:
$(function()
{
$('#file_upload').uploadifive(
{
'auto' : false,
'dnd' : true,
'checkScript' : 'check-exists.php',
'queueID' : 'queue',
'uploadScript' : 'upload.php',
'onUploadComplete' : function(file, data) {console.log(data);}
});
});
Than add this function:
function uploadFiles()
{
$('#file_upload').data('uploadifive').settings.formData =
{
'timestamp' : '<?php echo $timestamp;?>',
'token' : '<?php echo md5('unique_salt' . $timestamp);?>',
'MyNumber' : $('#MyInputVariable').val()
},
$('#file_upload').uploadifive('upload');
}
And whatever other variables you need to add. Your input variables will now post on upload.
I think this is best anwser
How to submit dynamic variables with uploadifive
replace this:
'formData': {
'timestamp': '<?php echo $timestamp;?>',
'token': '<?php echo md5('unique_salt' . $timestamp);?>',
'MyNumber': $('#MyInputVariable').val(),
},
by this:
'onUpload' : function(){
$('#file_upload').data('uploadifive').settings.formData = {
'timestamp': '<?php echo $timestamp;?>',
'token': '<?php echo md5('unique_salt' . $timestamp);?>',
'MyNumber': $('#MyInputVariable').val(),
}},
and this is full code:
<?php $timestamp = time();?>
$(function () {
$('#file_upload').uploadifive({
'auto': false,
'dnd': true,
'checkScript': 'check-exists.php',
'onUpload' : function(){
$('#file_upload').data('uploadifive').settings.formData = {
'timestamp': '<?php echo $timestamp;?>',
'token': '<?php echo md5('unique_salt' . $timestamp);?>',
'MyNumber': $('#MyInputVariable').val(),
}},
'queueID': 'queue',
'uploadScript': 'upload.php',
'onUploadComplete': function(file, data) {console.log(data);}
});
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With