未填写必填项,php被执行

Not filled the required fields, php is executed

我有 html 带有输入字段的表单。来自表单的数据将通过 php 中的 ajax 函数和 php returns 中的结果发送 html。 尽管并非所有字段都已填写 php 执行并 returns 结果。 如果所有字段都已填写,则无法从 php.

获得结果

谁能帮我解决这个问题?

提前致谢

HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Test</title>
<script type="text/javascript" src="ajax.js"></script>
</head>
<body>
<div id="inputform">
    <form>  
        Name:<br>
        <input type="text" id="firstname" required><br>
        Surname:<br>
        <input type="text" id="lastname" required ><br>
        <input type="submit" value="submit" onclick='ajax()'>
        <div id="ajaxDiv"></div>
    </form>
</div>

javascript

function ajax() {
var ajaxRequest;  // The variable that makes Ajax possible!

try {
    // Opera 8.0+, Firefox, Safari
    ajaxRequest = new XMLHttpRequest();
} catch (e) {
    // Internet Explorer Browsers
    try {
        ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
        try {
            ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
        } catch (e) {
            // Something went wrong
            alert("Your browser broke!");
            return false;
        }
    }
}
// Create a function that will receive data sent from the server
ajaxRequest.onreadystatechange = function () {
    if (ajaxRequest.readyState == 4) {
        var answer = document.getElementById('ajaxDiv');
        answer.innerHTML = ajaxRequest.responseText;
    }
};

var firstname = document.getElementById('firstname').value;
var lastname = document.getElementById('lastname').value;


var queryString = "?firstname=" + firstname + "&lastname=" + lastname;
ajaxRequest.open("GET", "test.php" + queryString, true);
ajaxRequest.send(null);}   

php

<?php
$firstname=$_GET['firstname'];
$lastname=$_GET['lastname'];
echo $firstname;
?>

您使用 ajax 将表单数据发送到服务器,并在表单提交时调用方法 ajax()。所以,不需要 <form> 标签,因为当你点击按钮时,你调用了 ajax() 函数,表单会自动提交。

删除 <form> 并更改: <input type="submit" value="submit" onclick='ajax()'><input type="button" value="submit" onclick='ajax()'>