1
私のブログでは、自分のデータベースからループ内の投稿を引き出すように設定しています。各ポスト(#post_)は1組のラジオボタンと結合されています。ラジオボタンが選択されると、ajaxはその値をデータベースに格納するcheck.phpに値を送ります。返されたhtmlは#Message_に表示されます。jQuery特定のラジオボタンの値を選択したときに別のdivを基準にdivを表示する
Likeラジオボタンが選択されている場合にのみ、div(#Message_)がその投稿のdivの右上隅に表示されるようにします。
これは、ラジオボタンが選択されているときに#Messageを表示するコードですが、#postの下にのみ表示します。
ループを呼び出す:
<div id="content">
<form name="myform" action="" method="post">
<legend>Posts</legend>
<?php
$data = mysql_query("SELECT * FROM Posts");
while($row = mysql_fetch_array($data)){
?>
のjQuery自体、ループ内で座って:
<script type="text/javascript">
$(document).ready(function() {
$("input[name*='pref_<?php echo $row['postID']; ?>']").click(function() {
var postID = <?php echo $row['postID']; ?>;
var value = $(this).val();
var userID = <?php echo $current_user->ID; ?>;
$.ajax({
url: 'check.php',
type: 'POST',
data: 'userID=' + userID + '&postID=' + postID + '&value=' + value,
success: function(result) {
$('#Message_<?php echo $row['postID']; ?>').html('').html(result);
}
});
});
});
</script>
ループ内の記事を表示:
<div id="post_<?php echo $row['postID']; ?>" class="post">
<div id="post_<?php echo $row['postID']; ?>_inside">
<b><?php echo $row['Title']; ?></b><br>
Expires: <?php echo $row['Exp']; ?><br>
<ul id="listM"></ul>
<form id="form_<?php echo $row['postID']; ?>" action="/">
<fieldset>
<div class="left"><p><input id="like_<?php echo $row['postID']; ?>" type="radio" name="pref_<?php echo $row['postID']; ?>" value="1"<?php if ($checked['value'] == "1") echo " checked"; ?> />
<label for="like_<?php echo $row['postID']; ?>">Like</label></p></div>
<div class="right"><p><input id="dislike_<?php echo $row['postID']; ?>" type="radio" name="pref_<?php echo $row['postID']; ?>" value="0"<? if ($checked['value'] == "0") echo " checked"; ?> />
<label for="dislike_<?php echo $row['postID']; ?>">Dislike</label></p></div>
<hr />
</fieldset>
</form>
</div>
</div>
<div id="Message_<?php echo $row['postID']; ?>"></div>
は、ループを終了します:
<?php
}
?>
</div>
わかりました...しかし、どのように位置決めに対して約投稿部署?それは私の問題の要点です... – Sweepster
私は私の答えを更新しました.jQueryの '.prepend()'を使ってメッセージ要素をpost要素の先頭に移動しました。あなたが望む場所にCSSを置くことができます。 –
そのトリックをした! – Sweepster