我试图采用脚本在一个教程中使用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()的空字符串。
答案 0 :(得分:4)
您的onclick
函数似乎有语法错误。
onClick="addVote('.$row['image_id'].',"1")"
如您所见,您在双引号内使用双引号(数字1左右)。尝试:
onClick="addVote('.$row['image_id'].',\"1\")"