繁体   English   中英

我怎样才能获得表单数据用javascript验证它并使用php将其发送到数据库

[英]how can i get form data validate it with javascript and send it to database using 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.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';
                }
}
?>

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

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获得它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM