我如何获取表单数据并使用javascript进行验证,然后使用php将其发送到数据库

时间:2019-04-08 10:10:14

标签: javascript php ajax

我尝试将数据从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.log("OutPut:" + respOutPut);
            if (respOutPut.trim() == "not Ajax Request"){

            }
        },
        error: function () {
            console.log("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';
                }
}
?>

1 个答案:

答案 0 :(得分:0)

您可以像这样发送表单数据

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

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

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

在您的php中,您可以通过$ _POST获得它们。