Как я могу получить данные формы, проверить их с помощью javascript и отправить в базу данных с помощью php

Я пытался передать свои данные из ajax в php, а затем в базу данных, но я обнаружил ошибки, говорящие о неперехваченной ошибке - "undefined function is_ajax"

..............мой js-код.............

var form = document.getElementById('form');
form.addEventListener("submit",validateForm)


function validateForm(e) {
    e.preventDefault();

    var name = document.forms["form"]["name"] .value; 
    var ml = document.forms["form"]["mail"] .value; 
    var num = document.forms["form"]["number"] .value; 
    var ctry = document.forms["form"]["country"] .value; 
    var date_in = document.forms["form"]["date_in"] .value; 
    var time_in = document.forms["form"]["time_in"] .value; 
    var time_out = document.forms["form"]["time_out"] .value; 

    $.ajax({
        type: "POST", 
        url: "data.php",
        data:{myname:name,myemail:ml,c_num:num,c_ctry:ctry,in_date:date_in,in_time:time_in,out_time:time_out},
        success:function(reply){
            var respOutPut = String(reply);
            console.info("OutPut:" + respOutPut);
            if (respOutPut.trim() == "not Ajax Request"){

            }
        },
        error: function () {
            console.info("Error:");
        } 
    });
}



.......php..........
<?php

if (is_ajax()) {

    if ( $_POST["myname"] && isset($_POST["myemail"]) &&
    isset($_POST["c_num"]) && isset($_POST["c_ctry"]) &&
    isset($_POST["in_date"]) && isset($_POST["in_time"]) && 
    isset($_POST["out_time"])){

        $name =  $_POST["myname"];
        $email =  $_POST["myemail"];
        $number =  $_POST["c_num"];
        $country =  $_POST["c_ctry"];
        $arrival_d =  $_POST["in_date"];
        $arrival_t =  $_POST["in_time"];
        $dep_t =  $_POST["out_time"];

        $servername = "localhost";
        $username = "root";
        $password = "";
        $dbname = "triangle";

        // Create connection
        $conn = new mysqli($servername, $username, $password);
        // Check connection
        if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error . "<br>");
                    } 
        echo "Connected successfully<br>";

        // Create database
            $sql = "CREATE DATABASE IF NOT EXISTS triangle";
            if ($conn->query($sql) === TRUE) {
                    echo "Database created successfully<br>";
            } else {
                    echo "Error creating database: " . $conn->error."<br>";
            }
            $conn->close();

            $conn = new mysqli($servername, $username, $password, $dbname);
                // Check connection
                if ($conn->connect_error) {
                        die("Connection failed: " . $conn->connect_error."<br>");
                } 
                // sql to create table
                $sql = "CREATE TABLE IF NOT EXISTS Customer (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
                name VARCHAR(30) NOT NULL,
                email VARCHAR(30) NOT NULL,
                number VARCHAR(50),
                country VARCHAR(50),
                date_in VARCHAR(50),
                time_in VARCHAR(50),
                dep_time VARCHAR(50))";
                if ($conn->query($sql) === TRUE) {
                        echo "Table customer created successfully<br>";
                } else {
                        echo "Error creating customer table: " . $conn->error."<br>";
                }
                $conn->close();

                $sql = "INSERT INTO customer (name, email, number,country,date_in,time_in,dep_time) 
                VALUES ('$_POST[myname]','$_POST[myemail]','$_POST[c_num]','$_POST[c_ctry]','$_POST[in_date]','$_POST[in_time]','$_POST[out_time]')";
                if ($conn->query($sql) === TRUE) {
                        echo "New record created successfully<br>";
                } else {
                        echo "Error: " . $sql . "<br>" . $conn->error."<br>";
                }
                $conn->close();

    }

                function is_ajax() {
                return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && 
                strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
                }
}
?><?php

if (is_ajax()) {

    if ( $_POST["myname"] && isset($_POST["myemail"]) &&
    isset($_POST["c_num"]) && isset($_POST["c_ctry"]) &&
    isset($_POST["in_date"]) && isset($_POST["in_time"]) && 
    isset($_POST["out_time"])){

        $name =  $_POST["myname"];
        $email =  $_POST["myemail"];
        $number =  $_POST["c_num"];
        $country =  $_POST["c_ctry"];
        $arrival_d =  $_POST["in_date"];
        $arrival_t =  $_POST["in_time"];
        $dep_t =  $_POST["out_time"];

        $servername = "localhost";
        $username = "root";
        $password = "";
        $dbname = "triangle";

        // Create connection
        $conn = new mysqli($servername, $username, $password);
        // Check connection
        if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error . "<br>");
                    } 
        echo "Connected successfully<br>";

        // Create database
            $sql = "CREATE DATABASE IF NOT EXISTS triangle";
            if ($conn->query($sql) === TRUE) {
                    echo "Database created successfully<br>";
            } else {
                    echo "Error creating database: " . $conn->error."<br>";
            }
            $conn->close();

            $conn = new mysqli($servername, $username, $password, $dbname);
                // Check connection
                if ($conn->connect_error) {
                        die("Connection failed: " . $conn->connect_error."<br>");
                } 
                // sql to create table
                $sql = "CREATE TABLE IF NOT EXISTS Customer (id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, 
                name VARCHAR(30) NOT NULL,
                email VARCHAR(30) NOT NULL,
                number VARCHAR(50),
                country VARCHAR(50),
                date_in VARCHAR(50),
                time_in VARCHAR(50),
                dep_time VARCHAR(50))";
                if ($conn->query($sql) === TRUE) {
                        echo "Table customer created successfully<br>";
                } else {
                        echo "Error creating customer table: " . $conn->error."<br>";
                }
                $conn->close();

                $sql = "INSERT INTO customer (name, email, number,country,date_in,time_in,dep_time) 
                VALUES ('$_POST[myname]','$_POST[myemail]','$_POST[c_num]','$_POST[c_ctry]','$_POST[in_date]','$_POST[in_time]','$_POST[out_time]')";
                if ($conn->query($sql) === TRUE) {
                        echo "New record created successfully<br>";
                } else {
                        echo "Error: " . $sql . "<br>" . $conn->error."<br>";
                }
                $conn->close();

    }

                function is_ajax() {
                return isset($_SERVER['HTTP_X_REQUESTED_WITH']) && 
                strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest';
                }
}
?>

javascript и php не могут взаимодействовать друг с другом, так как javascript работает в браузере пользователя, а php является серверным языком. что вы должны проверить, если нажата кнопка отправки, а затем обработать данные

Kebab Programmer 08.04.2019 12:43

в php-коде метод is_ajax() не существует, поэтому вы получаете эту ошибку, и это правильно.

Kebab Programmer 08.04.2019 12:44

использовать validate.js на стороне клиента и методы проверки формы php на стороне сервера 1. проверить.js 2. проверка php

Anandhukrishna VR 08.04.2019 12:53

Почему вы создаете функцию is_ajax() два раза?

Sfili_81 08.04.2019 13:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы можете отправить данные формы следующим образом

var formData = $(form).serializeArray();

$.ajax({
  type: "POST", 
  url: "data.php",
  data:{formData},
  success:function(reply){
      var respOutPut = String(reply);
      console.info("OutPut:" + respOutPut);
      if (respOutPut.trim() == "not Ajax Request"){

      }
   },
   error: function () {
       console.info("Error:");
   } 
});

И в вашем php вы можете получить их по $_POST.

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

Phalcon: Обратите внимание на неопределенную переменную в представлениях, сгенерированных Scaffold (модель и контроллер в порядке)
Как исправить «Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное« эхо »(T_ECHO)» в PHP при выполнении запроса на выборку из MySql
Добавьте пользовательский заполнитель в тему электронной почты в WooCommerce
Как отобразить массив сообщений, полученных из базы данных, для чата
Как включить ноль в строку?
Woocommerce после перенаправления оформления заказа, если элементы заказа относятся к определенным категориям продуктов
Получайте заказы, оплачиваемые кредитной картой в WooCommerce
Лучший способ переименовать ключи в PHP, чем array_combine?
Как проверить, начинается ли входное значение с прописной буквы/или имеет ли оно строчные буквы/или все ли оно в верхнем регистре в PHP?
Сообщение PHP о том, как получить значения параметров внутри цикла foreach для отображения выбранного значения