Я использую чистые 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>';
}
мой Аякса код:
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