JQuery ajaxfileupload with codeigniter


JQuery ajaxfileupload with codeigniter

早上好。

我想问一下JQuery ajax fileUpload。我对此有一些问题。

  1. 我想从javascript函数传递一些变量
  2. 插入通过 jquery ajax 上传文件的变量和值

以下是javascript函数:

var baseurl = 'http://fadli.com/';
            function upload_item(kode,field,table)
        {
            $("#upload_item_"+table+"_"+kode).hide(); //hide submit button
            $("#loading_image_upload_"+table+"_"+kode).show(); //show loading image
            console.log('masuk ke fungsi upload');

            $.ajaxFileUpload({
                url             : baseurl+"admin/level/upload_item/"+kode+"/"+field+"/"+table, 
                //url           :'./admin/level/upload_file/',
                secureuri       : false,
                fileElementId   :'userfile_'+table+'_'+field+'_'+kode,
                dataType        : 'json',
                data            : {
                    'title'             : $('#sub_modul_title_'+kode).val()
                },
                success : function (data, status)
                {
                    if(data.status != 'error')
                    {
                        // $('#files').html('<p>Reloading files...</p>');
                        // refresh_files();
                        // $('#title').val('');
                        alert('sukses brow');
                        $("#upload_item_"+table+"_"+kode).show(); //show submit button
                        $("#loading_image_upload_"+table+"_"+kode).hide(); //hide loading image
                    }
                    console.log(data.msg);
                },
                error:function (xhr, ajaxOptions, thrownError){
                    console.log(thrownError);
                    $("#upload_item_"+table+"_"+kode).show(); //show submit button
                    $("#loading_image_upload_"+table+"_"+kode).hide(); //hide loading image
                }
            });
            return false;
        }

这是 HTML 代码:

<input type="file" name="userfile" id="userfile_sub_modul_sub_modul_id_<?php echo $sub->sub_modul_id?>" class="styled-finputs">
<button class="btn btn-labeled btn-success btn-xs" type="button" id="upload_item_sub_modul_<?php echo $sub->sub_modul_id; ?>" onclick="upload_item('<?php echo $sub->sub_modul_id?>','sub_modul_id','sub_modul')"><span class="btn-label icon fa fa-picture-o"></span> Upload gambar</button>                                                           
<img src="http://fadli.com/assets/img/input-spinner.gif" id="loading_image_upload_sub_modul_<?php echo $sub->sub_modul_id?>" style="display:none" />

问题是在第一个控制台日志之后,它无法完全正常工作。

任何帮助将不胜感激。

谢谢

对于 ajaxFileUpload,它以大写字母 A 开头,尝试将ajaxFileUpload更改为 AjaxFileUpload

您可以简单地使用 ajax 提交表单(无需重新加载页面)。
只需使用此代码。它也将提交您的文件数据。

$(document).on("submit", "form", function(event)//I wrote it for any form.You can change it for specific form
{
    event.preventDefault();
    $.ajax({
        url: $(this).attr("action"),//make sure your form has action url
        type: $(this).attr("method"),//Your form method type GET OR POST
        dataType: "JSON",
        data: new FormData(this),
        processData: false,
        contentType: false,
        success: function (data, status)
        {
        },
        error: function (xhr, desc, err)
        {

        }
    });
});

您也可以使用 FormData 添加附加数据。 https://developer.mozilla.org/en-US/docs/Web/Guide/Using_FormData_Objects你可以像这样修改上面的函数

$(document).on("submit", "form", function(event)
{
    var formData = new FormData(this);
    formData.append("MORE_INPUT_KEY", "MORE_DATA");
    event.preventDefault();
    $.ajax({
        url: $(this).attr("action"),//set any link
        type: $(this).attr("method"),//set any metho
        dataType: "JSON",
        data: formData ,
        processData: false,
        contentType: false,
        success: function (data, status)
        {
        },
        error: function (xhr, desc, err)
        {

        }
    });
});