Как отправлять другие данные формы при загрузке изображений с помощью ajax, php, и изображение не выбрано

#javascript #php #ajax

Вопрос:

У меня есть форма, которая загружает изображения с индикатором выполнения. Но выбор изображения необязателен. Он отлично работает при выборе изображений. upload.php получает как имя, так и изображения. Проблема в том, что он не может отправить имя или другие данные формы, пока изображение не выбрано.

форма-

 lt;form id="uploadImage" action="upload.php" method="post"gt;  lt;div class="form-group"gt;  lt;labelgt;Namelt;/labelgt;  lt;input type="text" name="name" id="name"gt;  lt;/divgt;  lt;div class="form-group"gt;  lt;labelgt;File Uploadlt;/labelgt;  lt;input type="file" name="uploadFile[]" id="uploadFile" accept=".jpg, .png" multiple/gt;  lt;/divgt;  lt;div id="preview"gt;lt;/divgt;  lt;div class="form-group"gt;  lt;input type="submit" id="uploadSubmit" value="Upload" class="btn btn-info" /gt;  lt;/divgt;  lt;div class="progress"gt;  lt;div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"gt;lt;/divgt;  lt;/divgt;  lt;div id="targetLayer" style="display:none;"gt;lt;/divgt;  lt;/formgt;  lt;div id="loader-icon" style="display:none;"gt;lt;img src="loader.gif" /gt;lt;/divgt;  

Код Javascript-

 lt;scriptgt;  $(document).ready(function(){  $('#uploadImage').submit(function(event){   var x= document.getElementById("name").value;   if (x == '')  document.getElementById("preview").innerHTML= "name is required.";   else  {  if($('#uploadFile').val())  {  event.preventDefault();  $('#loader-icon').show();  $('#targetLayer').hide();  $(this).ajaxSubmit({  target: '#targetLayer',  beforeSubmit:function(){  $('.progress-bar').width('50%');  },  uploadProgress: function(event, position, total, percentageComplete)  {  $('.progress-bar').animate({  width: percentageComplete   '%'  }, {  duration: 1000  });  },  success:function(){  $('#loader-icon').hide();  $('#targetLayer').show();  },  resetForm: true  });  }   else  {   }  }   return false;  });  }); lt;/scriptgt;  

итак, пока изображение не выбрано, что делать в другой части?

Комментарии:

1. В блоке else используйте те же инструкции блока if, но (а) Удалите блок beforeSubmit; и (б) Удалите блок uploadProgress

2. здорово. хорошего дня