我想检查用户是否喜欢某个项目,但我不确定如何将数据库查询的结果返回给ajax。
我将根据结果显示不同的html。
腓
$query = "SELECT itemID from favourites WHERE userid = '" . $user. "'";
$result = mysql_query($query);
echo json_encode($result);
Jquery的
$.ajax({
url: "inc/functions.php",
type: "POST",
data: {--result--},
success: function () {
// if result found in database
$('favourite').hide();
// if result not found
$('favourite').show();
}
});
我无法弄清楚如何在jquery代码中显示$ result。
任何帮助非常感谢。
答案 0 :(得分:1)
$result
是表示结果的PHP对象。
在将结果发送回JS之前,您必须使用fetch()
方法提取结果。
见this link。在评论的正上方有一个所有fetch
- 家庭方法的列表。
此外,您需要事先使用mysqli_connect
(或您的mysql_connect
)与您的数据库建立连接。
正如评论中所述,您应该使用mysqli*
函数系列而不是mysql*
。
答案 1 :(得分:1)
感谢有关mysqli的信息的评论。我更新了代码并解决了ajax部分。
对于其他被困的人,我让它像这样工作:
PHP
require ("../../connection.php");
$sql = "SELECT * FROM favourites WHERE userID = ? AND itemID = ?";
$user = $_POST['userID'];
$item = $_POST['itemID'];
$statement = $db->prepare($sql);
if($statement === false) {
trigger_error('Wrong SQL: ' . $sql . ' Error: ' . $db->error, E_USER_ERROR);
}
$statement->bind_param('ii',$user,$item);
$statement->execute();
$statement->bind_result($user,$item);
while($statement->fetch()){
echo 1;
}
$statement->close();
Jquery的
$.ajax({
url: "inc/userList.php",
data: userList,
type: "POST",
success: function (result) {
if (result == 1){
$('#addItem').css('display', 'none');
$('#removeItem').css('display', 'inline-block');
} else {
$('#addItem').css('display', 'inline-block');
$('#removeItem').css('display', 'none');
}
}
});