Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript AJAX没有';在正常表单提交时不提交_Javascript_Php_Html_Ajax - Fatal编程技术网

Javascript AJAX没有';在正常表单提交时不提交

Javascript AJAX没有';在正常表单提交时不提交,javascript,php,html,ajax,Javascript,Php,Html,Ajax,我正在尝试使用AJAX提交表单。如果我使用提交按钮,它会保存它,但是如果我使用AJAX,表单不会保存 此操作有效(表单保存到数据库中) 热点 热点 要访问internet,请输入您的电子邮件。 这不起作用(数据不会保存到数据库中),但console.log会写入: 启动AJAX 成功 你的电子邮件是something@some.one. xHR24 XHR2200 阿贾克斯发送 <!DOCTYPE html> <html> <head> <me

我正在尝试使用AJAX提交表单。如果我使用提交按钮,它会保存它,但是如果我使用AJAX,表单不会保存

此操作有效(表单保存到数据库中)


热点
热点
要访问internet,请输入您的电子邮件。



这不起作用(数据不会保存到数据库中),但console.log会写入:

启动AJAX

成功

你的电子邮件是something@some.one.

xHR24

XHR2200

阿贾克斯发送

<!DOCTYPE html>
<html>
<head>
<meta content="text/html" />
<meta charset="utf-8" />

<title>HotSpot</title>

</head>
<body>
     <form accept-charset="utf-8" name="mail" onsubmit="return false;" method="post" id="mail">
        <h1>Hotspot</h1>
        <h2>To gain internet access, enter your email.</h2>
        <br />
        <input type="text" id="email" name="email" autofocus="autofocus" />
        <br />
        <input type="button" value="Submit" id="submit_ok" name="submit_ok" /> <br />
    </form>

<script>

document.getElementById("submit_ok").addEventListener("click", sendAjax);

async function sendAjax() {
    console.log("Start AJAX!");
    let ax2 = await Ajax2 ("POST", "http://10.30.20.30:8080/Site/anti-xss.php")
    console.log("AJAX sent!");
}

function Ajax2 (method, url){
    return new Promise (function (resolve, reject){
        let xhr2 = new XMLHttpRequest();
        xhr2.open('POST', 'http://10.30.20.30:8080/Site/anti-xss.php', true);
        xhr2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhr2.onload = function(){
            if(this.status >= 200 && this.status < 300){
                resolve(xhr2.response);
                console.log("Success!");
                console.log("You'r email is " + useremail + ".");
                console.log("XHR2 " + xhr2.readyState);
                console.log("XHR2 " + xhr2.status);
            }else{
                reject({
                    status: this.status,
                    statusText: xhr2.statusText
                });
            }
        };
        xhr2.onerror = function (){
            reject({
                status: this.status,
                statusText: this.statusText
            });
        };
        let useremail = document.getElementById("email").value;                 
        xhr2.send("Email="+encodeURIComponent(useremail));
    });
}

</script>   

</body>
</html>

热点
热点
要访问internet,请输入您的电子邮件。



document.getElementById(“提交”\u确定”).addEventListener(“单击”,sendAjax); 异步函数sendAjax(){ log(“启动AJAX!”); 让ax2=等待Ajax2(“POST”http://10.30.20.30:8080/Site/anti-php) log(“AJAX已发送!”); } 函数Ajax2(方法、url){ 返回新承诺(功能(解决、拒绝){ 设xhr2=newXMLHttpRequest(); xhr2.open('POST','http://10.30.20.30:8080/Site/anti-php',true); setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”); xhr2.onload=函数(){ 如果(this.status>=200&&this.status<300){ 解析(xhr2.response); console.log(“成功!”); log(“你的电子邮件是”+useremail+”); log(“XHR2”+XHR2.readyState); console.log(“XHR2”+XHR2.status); }否则{ 拒绝({ 状态:这个状态, statusText:xhr2.statusText }); } }; xhr2.onerror=函数(){ 拒绝({ 状态:这个状态, statusText:this.statusText }); }; 让useremail=document.getElementById(“email”).value; xhr2.send(“Email=“+encodeURIComponent(useremail)); }); }
PHP-connect.PHP

<?php
header('Access-Control-Allow-Origin: *');
$host = "localhost";
$userName = "root";
$password = "";
$dbName = "baza";
// Create database connection
    $DB = new mysqli ($host, $userName, $password, $dbName);
    //$conn = new mysqli($host, $userName, $password, $dbName);
// Check connection
    if ($DB->connect_error) {
        die("Connection failed: " . $DB->connect_error);
    }
?>

PHP-anti-xss.PHP

<?php

    require ('connect.php');

    $clean_email = "";
    $cleaner_email = "";


    if(isset($_POST['email']) && !empty($_POST['email'])){
        //sanitize with filter
        $clean_email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL);
        //sanitize with test_input
        $cleaner_email = test_input($clean_email);
        //validate with filter
        if (filter_var($cleaner_email,FILTER_VALIDATE_EMAIL)){
            // email is valid and ready for use
            echo "Email is valid";  
            //Email is a column in the DB
            $stmt = $DB->prepare("INSERT INTO naslovi (Email) VALUES (?)");
            $stmt->bind_param("s", $cleaner_email);
            $stmt->execute();
            $stmt->close();
        } else {
            // email is invalid and should be rejected
            echo "Invalid email, try again";
        } 
    } else {
    echo "Please enter an email";
    }

    function test_input($data) {
      $data = trim($data);
      $data = stripslashes($data);
      $data = htmlspecialchars($data);
      return $data;
    }

    $DB->close();   
?>


谢谢你的帮助。

我认为这似乎是一个可变的问题。你拼错了

$clean_email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL); 


你所说的“这不起作用”是什么意思?表单数据没有放在数据库中吗?是的,这就是我的意思。如果您看第一个示例,数据将保存到数据库中。在2cnd示例中,它没有保存到DB中。代码看起来正常。检查您的anti-xss.php最有可能的问题是在那里的某个地方,但是php可以正常提交(它正在保存到数据库中)。我还将上传php…@DrDoom thx。不需要:)最好的
$clean_email = filter_var($_POST['email'], FILTER_SANITIZE_EMAIL); 
$clean_email = filter_var($_POST['Email'], FILTER_SANITIZE_EMAIL);