【发布时间】:2013-02-12 14:15:23
【问题描述】:
这是基本的html 表单:
<?php echo form_open( 'controller' ); ?>
<fieldset>
<input type="text" name="field_name_1" value="<?php echo set_value('field_name_1'); ?>"/>
<input type="file" name="field_name_2" value="<?php echo set_value('field_name_2'); ?>"/>
// more dynamically added form fields
<input type="submit" />
</fieldset>
<?php echo form_close(); ?>
我希望通过ajax 和jQuery Form Plugin 将我的input[type=file] 发送到其控制器(与其他输入类型一起)。
下面的代码适用于除input[type=file] 之外的所有其他输入类型。
<script src="http://malsup.github.com/jquery.form.js"></script>
var options = {
url: "<?php echo site_url('new_account/validate_new_account'); ?>",
type: 'POST',
dataType: 'json',
success: function(data) {
if (data.length === 0) {
alert('Form successfully submitted!');
} else {
alert("Some fields weren't answered successfully. Please answer them.");
// attach server-side form validations to respective fields
$.each(data, function(key, value){
var container = '<div class="error">'+value+'</div>';
$('.form-element input[name="'+key+'"]').after(container);
});
}
}
};
$('#main-submit').click(function(e) {
$('#professional-form').valid(); // jQuery validate
$('#professional-form').ajaxSubmit(options);
e.preventDefault(); // redirect to other place only if successful form
});
其他输入字段发送成功,但CodeIgniter 仍然没有收到文件。你们知道如何解决这个问题吗?
【问题讨论】:
-
也需要看你的html代码
-
@Sandeep Kumar - 我添加了我的
html代码 -
首先尝试使用基本的html表单标签而不是codeigniter,并且不要忘记在表单属性中添加enctype="multipart/form-data"
标签: javascript jquery ajax forms codeigniter