Я новичок в AJAX и работаю над реализацией формы, которая будет загружать имя и файл в php-файл, который обрабатывает данные и отправляет их в базу данных для вставки с использованием mysqli. Я протестировал php-файл, и он работает. Моя проблема в коде AJAX. Я пробовал реализацию с использованием XMLHTTP и использовал jQuery. Оба оставляют страницу и открывают файл PHP в браузере. В качестве дисквалификатора я разместил этот вопрос на другом сайте кодирования, между двумя плакатами последовала битва, и поэтому я пытаюсь здесь, надеюсь, получить разумный и спокойный ответ с продуктивными предложениями.Как использовать ajax для загрузки текстового поля и файла?
Я понимаю, что в настоящее время «get» отправляется в PHP-файл, а не «post», но PHPStorm сообщает мне, что «post» недоступно в этой форме. Какая у меня альтернатива? Я на правильном пути или есть другое направление, куда я должен идти? Как обновить только форму и оставить страницу PHP загруженной?
Вот соответствующий отрывок из моего кода,
<!DOCTYPE html>
<html>
<head>
<script src="jquery.min.js"></script>
<script src="jquery.validate.js"></script>
<script>
$(document).ready(function() {
$('#addForm').validate({
submitHandler: function (form) {
$('input[name="usingAJAX"]', this).val('true');
var url = $(form).prop('action');
var dataToSend = $(form).serialize();
var callback = function(dataReceived) {
$(form).hide();
//result message
$('body').append(dataReceived)
};
var typeOfDataToReceive = 'html';
$.get(url, dataToSend, callback, typeOfDataToReceive),
return false;
}
});
});
</script>
</head>
<body>
<form id="addForm" action="addInfo.php" enctype="multipart/form-data">
<input type="hidden" name="usingAJAX" value="false"/>
<label for="aname">Name: </label>
<input type="text" name="aname" id="aname" class=required/>
<label for="aimage">Photo: </label>
<input id="aimage" type="file" name="aimage" class="required">
<input type="submit" value="ADD"/>
</form>
</body>
</html>
Вы не можете загружать файлы с помощью AJAX. Общее обходное решение - отправить форму в скрытый iframe. –