Uploadifive dynamically posting input variables

前端 未结 2 1603
灰色年华
灰色年华 2021-01-06 03:52

The problem below is that when the function is initiated, of course, MyInputVariable is empty.


$(function ()          


        
相关标签:
2条回答
  • 2021-01-06 04:29

    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);}
        });
    });
    
    0 讨论(0)
  • 2021-01-06 04:39

    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.

    0 讨论(0)
提交回复
热议问题