Я разобрался как без перезагрузки страницы выполнить отправку данных формы при помощи Ajax:
У меня есть несколько файлов:
index.php - это главная страница, на которой размещена сама форма
<form method="post" id="ajax_form" action="" >
<input type="text" name="name" placeholder="NAME" /><br>
<input type="text" name="phonenumber" placeholder="YOUR PHONE" /><br>
<input type="button" id="btn" value="Отправить" />
</form>
ajax.js - это файл javascript, в котором содержится алгоритм ajax для обработки формы
$( document ).ready(function() {
$("#btn").click(
function(){
sendAjaxForm('result_form', 'ajax_form', 'action_ajax_form.php');
return false;
}
);
});
function sendAjaxForm(result_form, ajax_form, url) {
$.ajax({
url: url, //url страницы (action_ajax_form.php)
type: "POST", //метод отправки
dataType: "html", //формат данных
data: $("#"+ajax_form).serialize(), // Сеарилизуем объект
success: function(response) { //Данные отправлены успешно
result = $.parseJSON(response);
$('#result_form').html('Имя: '+result.name+'<br>Телефон: '+result.phonenumber);
},
error: function(response) { // Данные не отправлены
$('#result_form').html('Ошибка. Данные не отправлены.');
}
});
}
action_ajax_form.php - это серверная часть, которая отвечает за обработку полученных от формы данных и возвращает клиенту ответ в формате JSON.
if (isset($_POST["name"]) && isset($_POST["phonenumber"]) ) {
// Формируем массив для JSON ответа
$result = array(
'name' => $_POST["name"],
'phonenumber' => $_POST["phonenumber"]
);
// Переводим массив в JSON
echo json_encode($result);
}
Но мне надо реализовать эту отправку файлов без нажатия на клавишу "Отправить" в форме.
те вместо
$("#btn").click(
Должно быть что-то типа
window.onload
Но у меня не получается это реализовать.
Вы не могли бы помочь?