首页 > 解决方案 > 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 ”,它仍然可以工作,所以我真的不知道我做错了什么。

标签: htmljqueryajax

解决方案


看起来你真的必须检查你是如何写字的。我把成功写成成功。出了什么问题,这就是它不想继续的原因..

我们学到了什么?检查你如何写一切!但是看到这些错误总是很高兴


推荐阅读