Я пытаюсь реализовать кнопку «Нравится» с помощью ajax, поэтому мне не нужно перезагружать страницу для обновления базы данных, но запрос, выполненный через ajax, не работает.
Я урезал его, чтобы просто проверить, понравился ли пользователю этот проект или нет, и мне все еще не удается заставить его работать.
Я подтвердил:
-Ссылка $ хороша (через mysqli_ping())
-Сам запрос хороший (через phpMyAdmin)
-Ajax тоже кажется хорошим (замена echo $val на echo 1 или echo memberId предупреждает о хорошем значении).
код.js:
$("#likebtn").click(function(){
//check if already liked
$.ajax({
type:"POST",
url:"extra/projectpagefunctions.php",
data: {func: 'existsLinkProject', Table: 'projectLikes'},
success : function(result){
alert(result);
},
error : function(error){
console.info(error);
}
});
});
функции страницы проекта.php:
<?php
session_start();
$TestLink = mysqli_connect('localhost', '*******', '******', '******');
function existsLinkProject($Table){
$query = "SELECT * FROM `".$Table."` WHERE `memberId` = ".$_SESSION["account"]["memberId"]." AND `idProject` = ".$_SESSION["project"]["idProject"];
$result = mysqli_query($TestLink, $query);
$val=0;
if (mysqli_num_rows($result)>0){
$val=1;
}
echo $val;
}
if (isset($_POST["func"]) && mysqli_ping($TestLink)){
if ($_POST["func"] == "existsLinkProject"){
existsLinkProject($_POST["Table"]);
}
}
else{
echo "error";
}
?>
Я ожидаю, что функция вернет 1, если она уже понравилась, и 0, если нет. Но я получаю только 0 независимо от того, что находится в базе данных.
(при загрузке страницы я проверяю это и соответствующим образом устанавливаю цвет кнопки, и это уже работает)
Да, извините, ошибка при копировании, эхо $ val - это то, что делает мой код. я редактирую это
(Просто уточню, это НЕ было проблемой)



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


на странице проекта functions.php вы должны повторить $val вместо $query.