未填写必填字段,执行php

时间:2017-01-14 16:15:29

标签: php ajax field required

我有输入字段的html表单。来自表单的数据将通过php中的ajax函数发送,php将结果返回到html中。 虽然不是所有字段都填充php执行并返回结果。 如果所有字段都填满,则不会从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;
?>

1 个答案:

答案 0 :(得分:0)

您使用ajax将表单数据发送到服务器,并在表单提交上调用方法ajax()。因此,<form>代码中不需要,因为当您点击按钮时,您会调用ajax()函数,并且表单会自动提交。

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