所以我有一个循环,将帖子拉到页面上。每个帖子都有一对单选按钮(如/不喜欢),按下时会将其值发送到我的数据库。该页面设置为在pageload上提取该信息,以便在用户决定时将单选按钮自动选择为其先前的状态。
现在我想要一对复选框(主控件)来显示/隐藏所有不喜欢和所有喜欢的帖子。问题是我不知道如何做到这一点......我知道逻辑是这样的
#show_likes.click (function(){If $Mysql_value = 1 {toggle} else {ignore} });
#show_dislikes.click (function(){If $Mysql_value = 1 {toggle} else {ignore} });
这就是我已有的:
<?php global $current_user;
get_currentuserinfo();
$userID = $current_user->ID;
?>
<div id="content">
<form name="myform" action="check.php" method="post">
<fieldset>
<legend>Master Controls</legend>
<div class="left">
<p><input id="show_likes" name="show_likes" type="checkbox" value="1" onclick="toggleLayer(this.form);" />
<label for="b1">Hide Likes:</label></p>
</div>
<div class="right">
<p><input id="show_dislikes" name="show_dislikes" type="checkbox" value="1" onclick="toggleLayer(this.form);" />
<label for="b1">Hide Disikes:</label></p>
</div>
</fieldset>
<br><br>
<fieldset>
<legend>Posts</legend>
<?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);
?>
<script type="text/javascript">
$(document).ready(function() {
var checked = <?php echo $checked['value']; ?>;
if (checked = 1) {
$('#contest_<?php echo $row['contestID']; ?>').addClass('like');
} else if (checked = 0) {
$('#contest_<?php echo $row['contestID']; ?>').addClass('dislike');
}
$("input[name*='pref_<?php echo $row['contestID']; ?>']").click(function() {
var contestID = <?php echo $row['contestID']; ?>;
var value = $(this).val();
var userID = <?php echo $current_user->ID; ?>;
$.ajax({
url: '../wp-content/themes/MC/check.php',
type: 'POST',
data: 'userID=' + userID + '&contestID=' + contestID + '&value=' + value,
success: function(result) {
$('#Message_<?php echo $row['contestID']; ?>').html('').html(result);
}
});
if (value = 1) {
$('#contest_<?php echo $row['contestID']; ?>').removeClass('dislike').addClass('like');
} else if (value = 0) {
$('#contest_<?php echo $row['contestID']; ?>').removeClass('like').addClass('dislike');
}
});
$("input[name*='show_likes']").click(function() {
if ($('#contest_<?php echo $row['contestID']; ?>').is('.like')) {
$('#contest_<?php echo $row['contestID']; ?>').toggle();
}
});
});
</script>
<div id="contest_<?php echo $row['contestID']; ?>" class="post">
<div id="contest_<?php echo $row['contestID']; ?>_inside">
<b><?php echo $row['Title']; ?></b><br>
Expires: <?php echo $row['Exp']; ?><br>
<ul id="listM"></ul>
<form id="form_<?php echo $row['contestID']; ?>" action="/">
<fieldset>
<div class="left"><p><input id="like_<?php echo $row['contestID']; ?>" type="radio" name="pref_<?php echo $row['contestID']; ?>" value="1"<?php if ($checked['value'] == "1") echo " checked"; ?> />
<label for="like_<?php echo $row['contestID']; ?>">Like</label></p></div>
<div class="right"><p><input id="dislike_<?php echo $row['contestID']; ?>" type="radio" name="pref_<?php echo $row['contestID']; ?>" value="0"<? if ($checked['value'] == "0") echo " checked"; ?> />
<label for="dislike_<?php echo $row['contestID']; ?>">Dislike</label></p></div>
<hr />
</fieldset>
</form>
</div>
</div>
<div id="Message_<?php echo $row['contestID']; ?>"></div>
<?php
}
?>
</div>
有人可以帮助我离开这里吗?
答案 0 :(得分:1)
基本上你要做的是标记每个包含一个类的帖子的div。例如,使用like
和dislike
作为类名。这样,当有人点击您的show_likes
按钮时,您可以触发一项功能,该功能会隐藏所有包含课程dislike
的帖子,并显示所有包含课程like
的帖子。像这样举例如:
$('#show_likes').click(function() {
$('.like').show();
$('.dislike').hide();
}
另外请确保当某人喜欢或不喜欢某个帖子时,您会更新该帖子的课程。