Изменения для PHP тривиальны, достаточно следовать документации:
php.net/manual/ru/features.file-upload.post-method.php
Изменения для JS примерно следующие:
var form = $(this); // Предположу, что этот код выполняется в обработчике события 'submit' формы
var data = new FormData(); // Для отправки файлов понадобится объект FormData. Подробнее про него можно прочитать в документации - https://developer.mozilla.org/en-US/docs/Web/API/FormData
// Сбор данных из обычных полей
form.find(':input[name]').not('[type="file"]').each(function() {
var field = $(this);
data.append(field.attr('name'), field.val());
});
// Сбор данных о файле (будет немного отличаться для нескольких файлов)
var fileField = form.find('input[type="file"]');
var fileName = filesField.attr('name').;
var file = filesField.prop('files')[0];
data.append(fileName, file) ;
// Отправка данных
var url = 'send.php';
$.ajax({
url: url,
type: 'POST',
data: data,
contentType: false,
cache: false,
processData:false,
success: function(response) {
/* Данные успешно отправлены */
}
});