我使用纯js向其他.php页面发送ajax请求,我对ajax概念很新,所以我不太了解。 我见过jQuery ajax,但我更喜欢学习纯js ajax,所以我可以理解ajax是如何工作的。
我需要将ajax发送到同一页面,而不是将其发送到另一个页面来处理数据。有可能这样做吗?怎么样?
我的索引页面:
<div id="response"></div>
<form method="post" id="myForm">
<span>Username: </span>
<input type="text" name="uname" id="uname">
<span>Age: </span>
<input type="number" name="age" id="age">
<input type="submit" name="submit" value="Submit"><br>
</form>
<script src="js/app.js"></script>
我的PHP代码:
<?php
if(isset($_GET['uname']) && isset($_GET['age'])) {
$name = trim(strip_tags($_GET['uname'])); $age = trim(strip_tags($_GET['age']));
echo !empty($name) && !empty($age) ?
'<p style="color:green">Hello: '.$name.' You\'re '.$age.' Years Old :D</p>' :
'<p style="color:red">Please Write your Name and Your Age</p>';
}
我的ajax代码:
window.onload = function() {
var myForm = document.getElementById('myForm');
myForm.onsubmit = function() {
// Create the object from XMLHttpRequest
var xhttp = (window.XMLHttpRequest) ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"),
uname = document.getElementById('uname').value,
age = document.getElementById('age').value,
result = document.getElementById('response'),
url = 'ajax-thing.php?uname='+uname+'&age='+age;
xhttp.onload = function() {
result.innerHTML = xhttp.responseText;
};
xhttp.open('GET', url, true);
xhttp.send();
return false;
}
};
答案 0 :(得分:0)
尝试使用Jquery
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
url: 'ajax-thing.php',
data: "uname="+uname+"&age="+age,
success: function(data) {
console.log(data); // it will show the result in console
}
});
});
</script>
答案 1 :(得分:0)
这是可能的。在服务器上,您只需要验证ajax请求(当您使用ajax发出请求时,标头X-Requested-With: XMLHttpRequest
将附加到请求)。如果你想让make更容易,可以在url中添加新的params,注意服务器知道这是一个ajax请求,如:ajax-thing.php?uname='+uname+'&age='+age + '&ajax=1'
,如果是ajax请求,则返回你想要的任何内容。