投票赞成/反对系统出现Javascript错误

Javascript error on vote up/down system

本文关键字:系统 Javascript 错误      更新时间:2023-09-26

我尝试采用一个教程中的ajax和jquery的上下投票脚本。(I think)的问题是,在教程中,脚本与jquery-2.1.1一起使用,但我使用jquery-1.10.1这是HTML部分

<div id="links-'.$row["image_id"].'">
    <input type="hidden" id="votes-'.$row["image_id"].'" value="'.$row["votes"].'">
    <input type="hidden" id="vote_rank_status-'.$row["image_id"].'" value="'.$vote_rank.'">
    <div class="btn-votes">
        <input type="button" title="Up" class="up" onClick="addVote('.$row['image_id'].',"1")"'.$up.' />
        <div class="label-votes">'.$row["votes"].'</div>
            <input type="button" title="Down" class="down" onClick="addVote('.$row['image_id'].',"-1")"'.$down.'/>  
        </div>
    </div> 

这是script.js,它应该通过单击按钮来添加_vote.php

function addVote(image_id,vote_rank) {
    $.ajax({
        url: "add_vote.php",
        data:'image_id='+image_id+'&vote_rank='+vote_rank,
        type: "POST",
        beforeSend: function() {
            $('#links-' + image_id + ' .pull-right').html("<img src='LoaderIcon.gif' />");
        },
        success: function(vote_rank_status){
            var votes = parseInt($('#votes-' + image_id).val());
            var vote_rank_status; // = parseInt($('#vote_rank_status-' + id).val());
            switch(vote_rank) {
                case "1":
                    votes = votes + 1;
                    // vote_rank_status = vote_rank_status + 1;
                    break;
                case "-1":
                    votes = votes-1;
                    //vote_rank_status = vote_rank_status - 1;
                    break;
            }
            $('#votes-' + image_id).val(votes);
            $('#vote_rank_status-' + image_id).val(vote_rank_status);
            var up, down;
            if (vote_rank_status == 1) {
                up = "disabled";
                down = "enabled";
            }
            if (vote_rank_status == -1) {
                up = "enabled";
                down = "disabled";
            }   
            var vote_button_html = '<input type="button" title="Up" id="up" onClick="addVote(' + image_id + ',''1'')" ' + up + ' /><div class="label-votes">' + votes + '</div><input type="button" title="Down" id="down"  onClick="addVote(' + image_id + ',''-1'')" ' + down + ' />';    
            $('#links-' + image_id + ' .pull-right').html(vote_button_html);
        }
    });
}

当我点击向上或向下投票时,页面上不会发生任何事情。没有添加新的投票,也没有插入数据库。当我点击按钮时,这就是我在firefox控制台中看到的

SyntaxError:预期的表达式,得到了脚本的结尾

这个,但我不确定是否与这个剧本有关。显示错误在文件jquery-1.10.1.min.js

传递给getElementById()的空字符串。

您的onclick函数似乎存在语法错误。

onClick="addVote('.$row['image_id'].',"1")"

正如您所看到的,您在双引号中使用双引号(围绕数字1)。尝试:

onClick="addVote('.$row['image_id'].','"1'")"