使用codeigniter的JQuery ajaxfileupload

时间:2015-03-10 01:33:49

标签: javascript php jquery codeigniter

早上好。

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

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

    以下是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" />
    

    问题出在第一个控制台日志之后,它并没有全部停止运行。

    任何帮助都会受到赞赏。

    由于

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您只需使用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)
        {


        }
    });
});