Есть код JavaScript на нажатие кнопок.
При нажатии на кнопку авторизации POST нормально доходит. А вот при отправке комментария, $_POST ничего не видит.
Я не могу понять почему форма авторизации нормально доходит, а вот отправка комментария - нет.
if (logInButton != null) {
logInButton.onclick = function() {
var login = document.getElementById("userLogin");
var password = document.getElementById("logPasswordCheck");
if (login.value.length == 0 || password.value.length == 0) {
alert('Поля не должны быть пустыми.')
} else if (login.value.length < 4 || password.value.length < 4) {
alert('Данные должны быть не меньше 4 символов.')
} else {
var formData = new FormData();
formData.append('Login', login.value);
formData.append('Password', password.value);
var request = new XMLHttpRequest();
function reqReadyStateChange() {
if (request.readyState == 4 && request.status == 200)
document.getElementById("output").innerHTML = request.responseText;
}
request.open("POST", "/");
request.onreadystatechange = reqReadyStateChange;
request.send(formData);
window.location.href = '';
}
}
}
if (addComment != null) {
addComment.onclick = function() {
var productId = document.getElementById("productId");
var login = document.getElementById("getUserLogin");
var text = document.getElementById("commentText");
var commentStatus = document.getElementById("commentStatus");
var rating = document.getElementById("rating");
if (text.value.length == 0) {
alert('Поле не должно быть пустум')
} else if (text.value.length < 15) {
alert('Комментарий слишком маленький. Комментарий должен быть больше 15 символов.')
} else if (rating.value < 1 || rating.value > 5) {
alert('Рейтинг должен быть от 1 до 5')
} else {
var formData = new FormData();
formData.append('productId', productId.value);
formData.append('userLogin', login.value);
formData.append('commentText', text.value);
formData.append('commentStatusId', commentStatus.value);
formData.append('rating', rating.value);
var request = new XMLHttpRequest();
function reqReadyStateChange() {
if (request.readyState == 4 && request.status == 200){
document.getElementById("output").innerHTML = request.responseText;
}
}
request.open("POST", "/");
request.onreadystatechange = reqReadyStateChange;
request.send(formData);
window.location.href = '';
}
}
}
Вот форма которую я хочу отправить.
$productId = $_GET['id'];
$userLogin = $_SESSION['login'];
echo "<a><form method=\"post\" id=\"addCom\">";
echo "<input type=\"hidden\" id=\"productId\" value=$productId>";
echo "<input type=\"hidden\" id=\"getUserLogin\" value=$userLogin>";
echo "<li><textarea id=\"commentText\"></textarea></li>";
echo "<input type=\"hidden\" id=\"commentStatus\" value=2>";
echo "<li style=\"font-size: 18px;\">Рейтинг товара: <input type=\"number\" id=\"rating\" value=\"5\" min=\"1\" max=\"5\" step=\"1\"></li>";
echo "</form>";
echo "<button style=\"border-radius: 15px;\" id=\"AddComment\">Добавить комментарий</button></a>";
А тут я пытаюсь проверить POST.
if (isset($_POST['productId'])) {
$message = "work";
echo "<script>alert('$message')</script>";
} else {
$message = "not work";
echo "<script>alert('$message')</script>";
}