Я создаю веб-страницу, которая позволяет пользователю давать оценку продукту. Я использую ajax для отправки данных на сервер php, который в моем случае должен возвращать {"error":"reviewalready"}
. Но ajax не отвечает, не знаю почему? Я запустил страницу сервера вручную, и это нормально. Я попробовал все ответы на ту же проблему, но мне ничего не помогло. Вот index.php
, которые содержат форму
<!-- Review and rating form -->
<div class="review-form">
<p id="feedbackMessage" style="color:red;"></p>
<form id="feedbackForm" method="post">
<div class="form-group">
<input type="hidden" id="hiddenpid" name="pid" class="form-control" value = "<?=$pid?>">
</div>
<div class="form-group">
<textarea class="form-control" id="review" name="feedMessage" cols="50" rows="3" placeholder="Your feedback"></textarea>
</div>
<input class="btn btn-primary" type="submit" value="Post" id="feedBtn">
</form>
</div>
Javascript
$("#feedbackForm").submit(function(e) {
e.preventDefault();
var formData = new FormData(this);
formData.append("ratedindex", ratedindex + 1);
console.log("Form submitted");
$.ajax({
method: "post",
url: "viewserver.php",
data: formData,
contentType: false,
processData: false,
dataType: "json",
success: function(response) {
/* res = JSON.parse(response);
console.log(res.error); */
console.log(response);
}
});
});
Страница сервера viewserver.php
<?php
session_start();
include 'dbconnection.php';
date_default_timezone_set('Asia/Calcutta');
$userrating = $_POST['ratedindex'];
$userfeedback = $_POST['feedMessage'];
$pid = $_POST['pid'];
$date = date("DD M,y h:i a");
if (isset($_SESSION['uid']) || isset($_COOKIE['uid'])) {
if (isset($_COOKIE['uid'])) $uid = $_COOKIE['uid'];
else $uid = $_SESSION['uid'];
$sql = $connect->prepare("SELECT * FROM `product_rating` WHERE `user_id` = ? AND `product_id` = ?");
$sql->bind_param("ii", $uid, $pid);
$sql->execute();
$result = $sql->get_result();
if (($result -> num_rows) > 0) {
echo json_encode(array("error" => "reviewalready"));
} else {
$sql = $connect->prepare("INSERT INTO `product_rating` (`user_id`, `product_id`, `rating`, `review`, `date`) VALUES(?, ?, ?, ?, ?)");
$sql->bind_param("iiiss", $uid, $pid, $userrating, $userfeedback, $date);
if ($sql->execute()) {
echo json_encode(array("success" => "posted"));
} else {
echo json_encode(array("error" => "postfailed"));
}
}
} else {
echo json_encode(array("error" => "login"));
}
?>
Форма отправляется, но ajax не работает. Я считаю, что все правильно, но я не знаю, почему эта проблема тратит мое время?