Кнопка ввода и ajax не отправляют POST

У меня довольно простая форма. Я отправляю с помощью Ajax. Форма работает нормально. Однако, когда я пытаюсь использовать php, чтобы проверить, была ли нажата кнопка ввода, прежде чем я выполню код, он, похоже, не поднимает кнопку. Любой совет о том, что делать, было бы здорово. Я добавил образец кода ниже

<link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">

<script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form class = "Email-student" method= "post">
    <input class = "form-control" type = "text" name = "Email-subject" placeholder = "Email Subject">  
    <textarea class = "form-control" id = "message" name = "Email-message" placeholder = "Enter messages"></textarea>  
    <input type = "submit" id = "btnSubmit" name = "btnSubmit" value = "Save Changes" />
</form> 

<script>    
    $(document).ready(function(){
        $('.Email-student').submit(function(e){
            e.preventDefault();

            var url = "mysql.php"; // the script where you handle the form input.

            $.ajax({
                type: "POST",
                url: url,
                data: $(this).serialize(), // serializes the form's elements.
                success: function(data) {
                    //$('.Email-student').html(data);
                    alert(data);
                }
            });

        })
    })
</script>

Это упрощенная версия моего файла Php

if (isset($_POST['btnSubmit'])) {
    echo  'btnSubmit';
} 

Попадает ли запрос на страницу PHP? POST там заселен? print_r($_POST); раньше isset.

user3783243 05.06.2018 15:01

Ваш код будет значительно легче читать, если вы будете делать отступы последовательно.

Quentin 05.06.2018 15:03

Почему бы вам не проверить наличие if (isset($_POST['Email-subject']))?

Ankit Singh 05.06.2018 15:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
4
77
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

serialize() не будет включать в форму какие-либо кнопки отправки. Они являются успешными элементами управления, только если они используются для отправки формы, а serialize():

  • на самом деле не является частью процесса отправки формы
  • не могу знать, какая кнопка отправки была использована для отправки формы.

Следовательно, isset($_POST['btnSubmit']) не будет правдой.

Используйте другой механизм, чтобы определить, есть ли данные формы, которые вас интересуют (например, наличие поля Email-subject).

Другие вопросы по теме