У меня есть моя функция JavaScript, которая делает XMLHttpRequest. Вот мой код
function addbilldetails() {
// Cancel the form submit
event.preventDefault();
// The URL to POST our data to
var postUrl = 'http://example.com/post.php';
// Set up an asynchronous AJAX POST request
var xhr = new XMLHttpRequest();
xhr.open('POST', postUrl, true);
// Prepare the data to be POSTed
var clientId = "clientid",
submittype = "a",
name = encodeURIComponent(document.getElementById('name').value),
billno = encodeURIComponent(document.getElementById('billno').value),
mobileno = encodeURIComponent(document.getElementById('mobileno').value),
phoneno = encodeURIComponent(document.getElementById('phoneno').value),
netAmount = encodeURIComponent(document.getElementById('netAmount').value);
var params = 'clientId=' + clientId +
'&billno=' + billno +
'&mobileno=' + mobileno +
'&phoneno=' + phoneno +
'&netAmount=' + netAmount +
'&type=' + submittype +
'&name=' + name;
// Replace any instances of the URLEncoded space char with +
params = params.replace(/%20/g, '+');
// Set correct header for form data
xhr.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
// Handle request state change events
xhr.onreadystatechange = function() {
// If the request completed
if (xhr.readyState == 4) {
statusDisplay.innerHTML = '';
if (xhr.status == 200) {
// If it was a success, close the popup after a short delay
statusDisplay.innerHTML = 'Saved!';
document.getElementById('save').disabled = false;
// window.setTimeout(window.close, 1000);
} else {
// Show what went wrong
statusDisplay.innerHTML = 'Error saving: ' + xhr.statusText;
}
}
};
// Send the request and set status
xhr.send(params);
statusDisplay.innerHTML = 'Saving...';
document.getElementById('save').disabled = true;
}
Теперь приведенный выше код работает отлично и возвращает 200
на POST
, Но я хочу, чтобы он возвращал пользовательское сообщение в пользовательском интерфейсе в зависимости от опубликованного значения.
Если значение POST
ed меньше значения в базе данных, я хочу, чтобы он дал «Введите действительный номер» или что-то вроде этого.
Я тихий новичок в XMLHttpRequest
, Я не знаю, как этого добиться. Любая помощь будет высоко оценен.
Вместо statusDisplay.innerHTML = 'Saved!';
Вы рассмотрели:
statusDisplay.innerHTML = xhr.responseText;
Если вы сделаете это, то ваш statusDisplay будет равен тому, что вы post.php
эхо.
Например, в post.php
<?php
//handling $_POST['clientId'] ... etc
if (error)
echo "Enter Valid Number";
else
echo "Saved!";
Других решений пока нет …