我有输入字段的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;
?>
答案 0 :(得分:0)
您使用ajax将表单数据发送到服务器,并在表单提交上调用方法ajax()
。因此,<form>
代码中不需要,因为当您点击按钮时,您会调用ajax()
函数,并且表单会自动提交。
删除<form>
并更改:
<input type="submit" value="submit" onclick='ajax()'>
至
<input type="button" value="submit" onclick='ajax()'>