首页 > 解决方案 > 如何在ajax成功函数中访问php返回json编码的数组元素

问题描述

我有一个类似于 youtube 投票系统的投票系统。一旦我将相关数据发送到 php 函数,我想将查询结果返回给 ajax 函数。我有喜欢和不喜欢的数组。当我对数组进行编码时ajax成功函数返回如下。{"likes":2,"unlikes":0} 我想在 html 页面中显示喜欢和不喜欢的值(2 和 1)。我怎样才能得到它们。

用户喜欢.js

        function liked(answerId) {

            var anID = answerId;
            var clickedIcon = $('#Like');
            //var nextIcon=$('#like')

            $.ajax({
                dataType:'json',
                url: 'vote.php' ,
                type: 'post',
                data: {
                    'liked': 1,
                    'postid': anID

                },
                success: function (results) {


                    alert(results);

                    clickedIcon.removeClass();
                    clickedIcon.addClass('mdi-action-thumb-up teal-text');
                    //.text(res[0].likes);


                },
                error: function () {

                }
            });
        }

投票.php

    <? php include '../../backend/connection.php';
    session_start();
    $username = $_SESSION['username'];


    if (isset($_POST['liked'])) {
        $answerId = $_POST['postid'];
        $result = mysqli_query($connection, "SELECT * FROM answervote WHERE aID='" . $answerId . "'");
        $row = mysqli_fetch_array($result);
        $nUp =(int)($row['voteUpCount'])+1 ;

        $nDown=(int)$row['voteDownCount'];
        $law_query = mysqli_query($connection, "SELECT aUser FROM answer WHERE aID='" . $answerId . "'");
        $law = mysqli_fetch_array($law_query);
        $lawyer_name=$law['aUser'];

        $point_query=mysqli_query($connection,"SELECT points FROM lawyer  WHERE username='".$lawyer_name."'");
        $point_result=mysqli_fetch_array($point_query);

        $points=$point_result['points']+1;



        try{

            mysqli_autocommit($connection, FALSE);
            mysqli_query($connection,"UPDATE lawyer SET points='$points' WHERE username='".$lawyer_name."'");
            mysqli_query($connection, "INSERT INTO likes(username,aID) VALUES ('$username','$answerId')");
            mysqli_query($connection, "UPDATE answervote SET voteUpCount='$nUp' WHERE aID ='" . $answerId . "'");
            mysqli_commit($connection);
        }catch(Exception $e ){
            $connection->rollback();

        }
        $ratings=[
            "likes" => $nUp,
            "unlikes"=> $nDown

        ];
        echo json_encode($ratings);


    }

成功函数返回结果:{"likes":2,"unlikes":0}

标签: javascriptphpajax

解决方案


在您的成功功能中使用它,您将获得数据

结果 = $.parseJSON(结果);

现在 console.log(result) 或 alert(result)


推荐阅读