投票上/下系统的Javascript错误

时间:2015-07-01 10:48:59

标签: javascript jquery html ajax

我试图采用脚本在一个教程中使用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> 

以下是应将点击按钮传递给add_vote.php

script.js
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()的空字符串。

1 个答案:

答案 0 :(得分:4)

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

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

如您所见,您在双引号内使用双引号(数字1左右)。尝试:

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