1

以下のコードは、データベースからユーザーの最近の投稿を表示し、ユーザーが投稿を表示している場合は削除ボタンを表示します

<div class="span12">
                    <?php
                        // get current user ID
                        $userid = $row['0'];

                        // get posts
                        $sql_posts = "SELECT * FROM posts WHERE ownerid='$userid' ORDER BY id DESC LIMIT 0,5";
                        $result_posts = mysql_query($sql_posts);

                        // for each post, show le post.
                        while($row_posts = mysql_fetch_assoc($result_posts)) {
                    ?>
                    <div class="well">
                        <span class="label"><?php echo date('F j Y',strtotime($row_posts['time']));?></span>
                        at
                        <span class="label"><?php echo date('g:i a',strtotime($row_posts['time']));?></span>
                        <?php
                            if($player==$_SESSION['username']) {
                        ?>
                            <a href="#deletepost" data-toggle="modal">
                                <span class="label label-important">Delete post</span>
                            </a>
                            <!-- delete post modal -->
                            <div id="deletepost" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
                                <div class="modal-header">
                                    <button type="button" class="close delete" data-dismiss="modal" aria-hidden="true">&times;</button>
                                    <h3 id="myModalLabel">Delete post</h3>
                                </div>
                                <div class="modal-body">
                                    Are you want to delete post #<?php echo $row_posts['id'];?>?
                                    <p class="muted">
                                        "<i><?php echo $row_posts['contents'];?></i>"
                                    </p>
                                </div>
                                <div class="modal-footer">
                                    <form class="pull-right form-inline" method="post" action="post_delete.php">
                                        <input type="hidden" value="<?php echo $row_posts['id'];?>" name="postid">
                                        <input type="hidden" value="<?php $filepath = $_SERVER["SCRIPT_NAME"]; echo basename($filepath);?>" name="currentpage">
                                        <button type="button" class="btn" data-dismiss="modal" aria-hidden="true">Keep the post</button>
                                        <button type="submit" class="btn btn-danger">I am sure. Delete the post!</button>
                                    </form>
                                </div>
                            </div>
                            <!-- end modal -->
                        <?php
                            } // end delete post button
                        ?>
                        <hr width="250px">
                        <img src="profilepic.php?player=<?php echo $player;?>&size=32" />
                        <?php echo $row_posts['contents'];?>
                    </div>
                    <?php
                        } // end post foreach
                    ?>
                </div>

何らかの理由で、ユーザーがモーダルを押すと、毎回同じ投稿が表示されます。たとえば、ユーザーが最初の投稿で削除を押し、投稿の内容が だったhello場合、モーダルに hello が表示されます。ただし、ループ内の残りのすべての投稿については、[削除] をクリックすると、すべてのモーダルの最初の投稿が表示されます。

4

2 に答える 2