我使用純JS來發送Ajax請求其他PHP頁面,我真的很新的AJAX的概念,所以我不知道很多。 我見過jQuery ajax,但我更喜歡學習純js ajax,所以我可以理解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;
}
};
首先,jQuery是不是針對你的情況成功的必要條件。其次,你能解釋爲什麼你需要*發送ajax請求到同一頁面嗎?在我看來,你將不得不編寫條件語句來停止原始表單和其他內容被傳回給responseText。如果可以完成,將ajax指向單獨的文件進行處理會更輕便。 – mickmackusa