html - Ajax 成功:函数():''我声明但它的值从未被读取
问题描述
我正试图做出像 Facebook 一样的反应(目前只是用文字)。所以我在 Ajax 工作,我的 succes 不想成功,我的 function() 给出:''我声明但它的值从未被读取。如果我检查另一个具有相同设置的文档并且它仍然继续并且它成功,那么我不知道我有什么问题或目前的问题在哪里。
我的 php 代码 (buddyChat.php)
<?php
session_start();
if (empty($_SESSION['user_id'])) {
header('Location: login.php');
}
//Hier mag enkel het gesprek te zien zijn tussen 2 users die met elkaar bevriend zijn
//tabel buddies >buddyID1 & buddyID2
include_once(__DIR__."/inc/header.inc.php");
include_once(__DIR__."/classes/Message.php");
include_once(__DIR__."/classes/User.php");
$userArray = $_SESSION['user_id'];
$userID = implode(" ", $userArray);
$currentUser = $userID;
//var_dump($_POST);
//$recipientID = implode(" ",$_POST);//om het getal terug te krijgen van de recipientID
$recipientID = $_POST['recipientID'];
//msg wordt in databank gestopt
if(!empty($_POST['message'])){
$msg = new Message();
$msg->setUserID($currentUser);
$msg->setRecipientID($recipientID);
$msg->setMessage(htmlspecialchars($_POST['message']));
$msg->writeMessage();
}
//msg wordt afgedrukt/gereturned
$messages = Message::messagePrint($currentUser,$recipientID);
$names = User::printRecipientName($recipientID);
?><!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="css/reset.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="css/reaction.css">
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/reaction.js"></script>
<title>Document</title>
</head>
<body>
<h1>Je chat nu met <?php echo $recipientID ?></h1>
<div class="">
<div class="">
<?php foreach($messages as $message): ?>
<div class="singlechat">
<?php if ($currentUser == $message['senderID']): ?>
<div class="chat senderchat">
<p><?php echo "Jij: " . $message["content"]; ?></p>
<span class="emoji_liked_png"></span>
<span class="emoji_liked_text">Emoji</span><!-- dit is de plaats waar je emoji komt te staan na het klikken-->
<ul class="reactions"><!-- lijst van alle emoji's-->
<li class="emoji" id="emoji-like" data-emoji="like"><a href="#" data-msgID="<?php echo $message['msgID'];?>">like</a></li>
<li class="emoji" id="emoji-love" data-emoji="love"><a href="#" data-msgID="<?php echo $message['msgID'];?>">love</a></li>
<li class="emoji" id="emoji-haha" data-emoji="haha"><a href="#" data-msgID="<?php echo $message['msgID'];?>">haha</a></li>
<li class="emoji" id="emoji-wow" data-emoji="wow"><a href="#" data-msgID="<?php echo $message['msgID'];?>">wow</a></li>
<li class="emoji" id="emoji-sad" data-emoji="sad"><a href="#" data-msgID="<?php echo $message['msgID'];?>">sad</a></li>
<li class="emoji" id="emoji-angry" data-emoji="angry"><a href="#" data-msgID="<?php echo $message['msgID'];?>">angry</a></li>
</ul>
</div>
</div>
<?php elseif ($currentUser == $message['recipientID']): ?>
<div class="">
<div class="chat recipientchat">
<p><?php echo $message["senderID"] . ": " . $message["content"]; ?></p>
<span class="emoji_liked_png"></span>
<span class="emoji_liked_text">Emoji</span>
<ul class="reactions">
<li class="emoji" id="emoji-like" data-emoji="1"><a href="#" data-msgID="<?php echo $message['msgID'];?>">like</a></li>
<li class="emoji" id="emoji-love" data-emoji="2"><a href="#" data-msgID="<?php echo $message['msgID'];?>">love</a></li>
<li class="emoji" id="emoji-haha" data-emoji="3"><a href="#" data-msgID="<?php echo $message['msgID'];?>">haha</a></li>
<li class="emoji" id="emoji-wow" data-emoji="4"><a href="#" data-msgID="<?php echo $message['msgID'];?>">wow</a></li>
<li class="emoji" id="emoji-sad" data-emoji="5"><a href="#" data-msgID="<?php echo $message['msgID'];?>">sad</a></li>
<li class="emoji" id="emoji-angry" data-emoji="6"><a href="#" data-msgID="<?php echo $message['msgID'];?>">angry</a></li>
</ul>
</div>
</div>
<?php endif; ?>
<?php endforeach;?>
</div>
</div>
<div>
<form action="" method="post">
<input type="text" name="message">
<input type="hidden" name="senderID" id="" value="<?php echo $currentUser?>">
<input type="hidden" name="recipientID" id="" value="<?php echo $recipientID?>">
<div class="">
<button type="submit" class="btn btnChat" style="width: 90px">Send</button>
</div>
</form>
</div>
</body>
和我的 JS 页面(reaction.js):
$(document).ready(function (){
$(".emoji").on("click", function() {
// de variabelen om te zien welke emoji je hebt en op welke post je zit
var emoji = $(this).attr("data-emoji");
//var msgID = $(this).attr("data-msgID");
console.log("here it works: " + emoji);
//ajax sturen voor het in de database te stoppen
$.ajax({
type: "POST",
dataType: 'json',
url: "ajax/Reaction.php",
data: "emoji=" + emoji,
succes: function (data){
console.log("succes");
$(".emoji_liked_text").html(emoji.toLowerCase()).removeClass().addClass('emoji_liked_text_'+emoji.toLowerCase()).addClass('active');
$(".emoji_liked_png").removeClass().addClass('emoji_liked_png').addClass('emoji_liked_' + data_reaction.toLowerCase());$(".reaction-btn-text").text(data_reaction).removeClass().addClass('reaction-btn-text').addClass('reaction-btn-text-' + data_reaction.toLowerCase()).addClass("active");
},
error: function(data){
console.log("didn't work");
}
})
console.log("this shows up after Ajax");
});
});
我使用了 3 个控制台日志:1 个在 ajax 之前,1 个在 ajax 内部,1 个在 ajax 之后,只是为了检查所有事情发生了什么、什么时候发生,或者它甚至发生了。他们跟着走。1:ajax之前的1。2:ajax后的1。3:ajax 中的 1。所以至少我得到3个控制台日志。但如果我不使用“ dataType: 'json '”,它甚至不会显示 ajax 控制台日志。即使在另一个项目中,它也没有写入“ dataType ”,它仍然可以工作,所以我真的不知道我做错了什么。
解决方案
看起来你真的必须检查你是如何写字的。我把成功写成成功。出了什么问题,这就是它不想继续的原因..
我们学到了什么?检查你如何写一切!但是看到这些错误总是很高兴
推荐阅读
- linux - 使用 sed 或 awk 提取两个单词之间的数据
- dart - 如何删除 RadioListTile 上的内部填充,以便可以连续使用 3 个 RadioListTiles?
- python - 在张量流中重塑一批具有动态最大长度的张量
- android - Camera2:createCaptureSession(List, CameraCaptureSession.StateCallback, Handler)中的handler是什么意思?
- django - Django 将字符串转换为模型的形式
- networking - 任意多万负载均衡解决方案
- tensorflow - tensorflowjs_converter:找不到命令
- ios - 在 iOS 11 中播放音乐库时更改和隐藏音量 HUD(音量叠加)
- blockchain - 智能合约——合约在哪里?
- c# - 如何将文本框中的整数值动态添加到 C# 中的 int 数组