Это мой источник формы:
<form id="createProject" name="createProject" class="form-light" method="post" enctype="multipart/form-data" target="upload_target"> <div class="col-md-10" id="sandbox-container1"> <label>Project duration</label> <div class="input-daterange input-group" id="datepicker"> <input type="text" required class="input-md form-control" id="start" name="start" /> <span class="input-group-addon">to</span> <input type="text" required class="input-md form-control" id="end" name="end" /> </div> </div> <div class="col-md-10"> <div class="form-group"> <label>Project attachment's</label> <input type="file" class="form-control" id="projectFile" name="projectFile" placeholder="Select project attachment's"> </div> </div> <input type="hidden" id="ownerid" name="ownerid" value="<?php echo $userid; ?>"> <div class="col-md-10"> <div class="form-group"> <button class="btn btn-two pull-right btn-lg" form="createProject" type="submit">Submit</button> </div> </div> </form>
Файл не загружается на сервер.
Я использую функцию ajax для отправки.
$.ajax({ url:'ajaxcalls/createprojectfunction.php', data:$(this).serialize(), type:'POST', beforeSubmit: function() { /* Before submit */ for ( instance in CKEDITOR.instances ) { CKEDITOR.instances[instance].updateElement(); } }, success:function(data){ console.log(data); }, error:function(data){ } });
Эта ошибка возникает из Firebug.
Примечание. Неопределенный индекс: projectFile.
но все другие элементы ввода доступны в файле ajax URL php.
Вам нужно будет использовать объект FormData для загрузки файла через ajax,
$.ajax({ url:'ajaxcalls/createprojectfunction.php', data: new FormData(this), type:'POST', processData: false, contentType: false, beforeSubmit: function() { /* Before submit */ for ( instance in CKEDITOR.instances ) { CKEDITOR.instances[instance].updateElement(); } }, success:function(data){ console.log(data); }, error:function(data){ } });