Я пытаюсь сделать реакцию подобной Facebook (на данный момент просто словами). Так что я нахожусь в точке на Ajax, и мои успехи не хотят преуспевать, и моя функция () дает: '' Я объявлен, но его значение никогда не читается. Если я проверяю другой документ с та же самая установка и все, что все еще продолжается, и это успешно, так что я не знаю, что я не так с этим или где проблема в данный момент.
Мой код 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 (реакция. 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 после просто, чтобы проверить все, что и когда происходит или что это вообще происходит. Они go как следует. 1: 1 перед ajax. 2: 1 после ajax. 3: 1 в ajax. Так что по крайней мере я получаю 3 консольных журнала. Но если я не использую " dataType: 'json" ", он даже не показывает журналы консоли ajax. Даже в другом проекте он не пишет " dataType ", и он все еще работает, поэтому я не знаю, что я делаю неправильно.