Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter tpl文件中文件类型的Ajax表单提交_Codeigniter_Smarty - Fatal编程技术网

Codeigniter tpl文件中文件类型的Ajax表单提交

Codeigniter tpl文件中文件类型的Ajax表单提交,codeigniter,smarty,Codeigniter,Smarty,我有一个应用程序,它位于带有smarty模板的codeigniter中。我想用ajax提交功能提交表单,但输入类型是用于图像上传的文件,我正在使用serialize(),但它不能给我数据 My.tpl文件代码为: <form method="post" action="" name="form_submit7" id='form_submit7' class="form-horizontal" enctype="multipart/form-data"> <h4>

我有一个应用程序,它位于带有smarty模板的
codeigniter
中。我想用ajax提交功能提交表单,但输入类型是用于图像上传的文件,我正在使用
serialize()
,但它不能给我数据

My.tpl文件代码为:

<form method="post" action="" name="form_submit7" id='form_submit7' class="form-horizontal" enctype="multipart/form-data">
    <h4>Logo Uploading</h4>
    <div class="booth-settings">
        <div class="form-group">
            <label class="col-md-4 control-label">Upload logo</label>
            <div class="col-md-7">
                <input type="file" name="expo_company_logo" class="form-control" placeholder="Upload Logo"><br>
            </div>
            <input type="submit" style="margin-top:20px;" id="save-summary" class="btn btn-primary btn-sm pull-right" value="Upload" />
         </div>
    </div>
</form>

但在警报部分的这个ajax函数中,没有任何数据

我认为您已经在配置文件中启用了csrf\u保护。如果在打开和关闭表单标记时使用form_helper的form_open()和form_close()函数,则会自动在表单中包含csrf键的隐藏输入标记 范例

{form\u open('',['name'=>'form\u submit7','id'=>'form\u submit7','class'=>'form-horizontal']))
徽标上传
上传图标

{form_close()}

也别忘了先加载form_helper

您还没有展示整个代码-您的代码中有{/literal},这意味着您以前也使用过它,也不清楚您的问题是什么。请添加更多事实上这是smarty模板的.tpl文件,所以在开始jquery/javascript代码之前,我们必须传递literal,所以在这段代码之前,我已经传递了{literal}标记,并且我在这里只给出了函数,所以。。。。
$('#form_submit7').submit(function(){
    var formVars = $(this).serialize();
    **alert(formVars);**

    $.ajax({
        type:     'POST',
        url:     '{/literal}{$site_url}expo/booth_company_logo/{$id}{literal}',
        data:     formVars,
        cache: false,
        success: function(data)
        {
            //alert(data);
            $('#company-pro').html(data);
            $('#radios').css("display","none");
        }
    });
    return false;
});
{form_open('',['name'=>'form_submit7','id'=>'form_submit7','class'=>'form-horizontal'])}
    <h4>Logo Uploading</h4>
    <div class="booth-settings">
        <div class="form-group">
            <label class="col-md-4 control-label">Upload logo</label>
            <div class="col-md-7">
                <input type="file" name="expo_company_logo" class="form-control" placeholder="Upload Logo"><br>
            </div>
            <input type="submit" style="margin-top:20px;" id="save-summary" class="btn btn-primary btn-sm pull-right" value="Upload" />
         </div>
    </div>
   {form_close()}