как отправить данные формы через jquery и ajax с php

Аватар пользователя Nikolai Gagarinov
Nikolai Gagarinov
26 февраля 2025

Сначала создадим простую HTML-форму, которую мы будем отправлять:

<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Отправка формы через AJAX</title>
    <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body>

<form id="myForm">
    <label for="name">Имя:</label>
    <input type="text" id="name" name="name" required>
    <br>
    <label for="email">Email:</label>
    <input type="email" id="email" name="email" required>
    <br>
    <button type="submit">Отправить</button>
</form>

<div id="response"></div>

<script>
$(document).ready(function() {
    $('#myForm').on('submit', function(e) {
        e.preventDefault(); // Предотвращаем стандартную отправку формы

        $.ajax({
            url: 'process.php', // URL, куда будет отправлен запрос
            type: 'POST', // Метод запроса
            data: $(this).serialize(), // Сериализация данных формы
            success: function(response) {
                // Обработка успешного ответа от сервера
                $('#response').html(response);
            },
            error: function(xhr, status, error) {
                // Обработка ошибок
                $('#response').html('Произошла ошибка: ' + error);
            }
        });
    });
});
</script>

</body>
</html>

Теперь создадим PHP-скрипт на серверекоторый будет обрабатывать данные, отправленные формой:

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Получение данных формы
    $name = htmlspecialchars($_POST['name']);
    $email = htmlspecialchars($_POST['email']);

    // Здесь можно добавить код для сохранения данных в БД или выполнения других действий
} else {
    // Неверный метод запроса
}

При отправке формы событие submit перехватывается с помощью jQuery. Мы предотвращаем стандартное поведение формы с помощью e.preventDefault(). Затем используем $.ajax() для отправки данных на сервер, указывая в качестве URL-адреса process.php. Метод запроса — POST, а данные формы сериализуются с помощью $(this).serialize(). Мы обрабатываем ответ от сервера в функции success и выводим его в элемент с ID response. В случае ошибки выводим соответствующее сообщение.

PHP-скрипт проверяет, что запрос был отправлен методом POST, получает данные из массива $_POST, применяя функцию htmlspecialchars(), чтобы предотвратить XSS-атаки, и возвращает сообщение о том, что данные успешно получены.

Таким образом, мы можем отправлять данные формы на сервер через jQuery и AJAX, а затем обрабатывать их на PHP. Этот метод обеспечивает более интерактивный и отзывчивый опыт для пользователей на веб-сайте, так как страницы не перезагружаются при отправке форм.

1 0
Познакомьтесь с основами PHP бесплатно