我有两个“按钮”(喜欢/不喜欢),它们实际上是附加到href标签的图像,当用户点击时,值会被发送到我的数据库。 #Messages显示check.php的输出,它只返回值。 jQuery代码与按钮的html一起位于循环内。
奇怪的是,我的代码仅适用于Like按钮,并且只有在我的代码中删除了不喜欢按钮时。不喜欢按钮本身(如从代码中删除的按钮)根本不起作用,如果两个按钮都被编码,则两个按钮都不起作用。
另外,#like应该在#dislike之前显示,但是在我的页面上#dislike出现在#like的左边,这不应该发生(它应该出现在#like的右边) 。有什么想法吗?
开始循环:
<?php
$data = mysql_query("SELECT * FROM Contests");
while($row = mysql_fetch_array( $data )){
$query = mysql_query("SELECT * FROM userContests WHERE userID='$userID' AND contestID='$row[contestID]';") or die(mysql_error());
$checked = mysql_fetch_assoc($query);
?>
我的jQuery(如果我删除了#dislike,那么#like就行了。如果我删除了#like,#alt就行了。当两者都存在时,都不起作用):
<script type="text/javascript">
$(document).ready(function() {
var checked = <?php echo $checked['value']; ?>;
var postID = <?php echo $row['postID']; ?>;
var userID = <?php echo $current_user->ID; ?>;
if (checked == 1) {
$('#post_<?php echo $row['postID']; ?>').addClass('like');
} else if (checked == 0) {
$('#post_<?php echo $row['postID']; ?>').addClass('dislike');
}
$('#like_<?php echo $row['postID']; ?>').click(function(liked) {
$.ajax({
url: 'check.php',
type: 'POST',
data: 'userID=' + userID + '&postID=' + postID + '&value=' + '1',
success: function(result) {
$('#Message_<?php echo $row['postID']; ?>').html('').html(result).prependTo('#post_<?php echo $row['postID']; ?>');
}
});
$('#post_<?php echo $row['postID']; ?>').removeClass('dislike').addClass('like');
if (showLikes.attr('checked')) {
$('#post_<?php echo $row['postID']; ?>').toggle();
}
});
$('#dislike_<?php echo $row['postID']; ?>').click(function(disliked) {
$.ajax({
url: 'check.php',
type: 'POST',
data: 'userID=' + userID + '&postID=' + postID + '&value=' + '0',
success: function(result) {
$('#Message_<?php echo $row['postID']; ?>').html('').html(result).prependTo('#post_<?php echo $row['postID']; ?>');
}
$('#post_<?php echo $row['postID']; ?>').removeClass('like').addClass('dislike');
if (showDislikes.attr('checked')) {
$('#post_<?php echo $row['postID']; ?>').toggle();
}
});
我的HTML:
<div id="post_<?php echo $row['postID']; ?>" class="post">
<div id="post_<?php echo $row['postID']; ?>_inside">
<div>
<a id="like_<?php echo $row['postID']; ?>" class="like" href="#"><span></span></a>
</div>
<div>
<a id="dislike_<?php echo $row['postID']; ?>" class="dislike" href="#"><span></span></a>
</div>
<b><?php echo $row['Title']; ?></b><br>
Expires: <?php echo $row['Exp']; ?><br>
<ul id="listM"></ul>
</div>
</div>
<div id="Message_<?php echo $row['postID']; ?>" class="reminder"></div>
结束循环:
<?php
}
?>
我的CSS:
a.like {
float: right;
background: url(images/entered.png) no-repeat top center;
height: 30px;
width: 28px;
}
a.like:active {
float: right;
background: url(images/entered.png) no-repeat bottom center;
height: 30px;
width: 28px;
}
a.dislike {
float: right;
background: url(images/not-interested.png) no-repeat top center;
height: 30px;
width: 28px;
}
a.dislike:active {
float: right;
background: url(images/not-interested.png) no-repeat bottom center;
height: 30px;
width: 28px;
}
那么可能会发生什么?如果#like在没有#dislike的情况下工作,那么为什么#dislike会在没有#like的情况下工作?
答案 0 :(得分:0)
我设法通过在变量中插入通过ajax发送的名为value的值来解决问题。
我不知道为什么它在硬编码时不起作用但你去了。