2013-04-26 2 views
0

Приведенные ниже код показывает последние сообщения пользователя из базы данных, и кнопки удаления при просмотре пользователя постаPHP во время цикла не работает внутри Bootstrap модального

<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> 

По какой-то причине, когда пользователь нажимает модальный он показывает один и тот же пост каждый раз. Например, если пользователь ударил delete в первом сообщении, а содержимое сообщения было hello, оно покажет привет в модальном режиме. Тем не менее, для всех остальных сообщений в цикле, если вы нажмете «Удалить», он покажет первое сообщение в каждом модуле.

+1

У вас есть много плохих вещей происходит здесь. Во-первых, чтобы ответить на ваш вопрос, посмотрите, как удалить сообщение. Каждый раз, когда вы зацикливаете, вы создаете новый div с тем же идентификатором «deleteepost». Вероятно, поэтому вы всегда открываете первый модальный. ID всегда должны быть уникальными. Кроме того, изучите использование [Улучшенное расширение MySQL] (http://us1.php.net/manual/en/book.mysqli.php). –

ответ

0

Ваш href для вашей ссылки удаления, #deletepost и ваш идентификатор модальности всегда один и тот же.

Измените его, чтобы он не использовал идентификаторы или не отличал каждый идентификатор.

Попробуйте это,

<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-<?php echo $row_posts['id'];?>" data-toggle="modal"> 
           <span class="label label-important">Delete post</span> 
          </a> 
          <!-- delete post modal --> 
          <div id="deletepost-<?php echo $row_posts['id'];?>" 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> 
+0

Спасибо, решила проблему красиво – 2013-04-27 10:51:12

0

Используйте другую модель ID «s в каждый раз, когда вы называете модель,

<div class="modal fade" id="<?php echo $id; ?>" role="dialog"> 
        <div class="modal-dialog modal-sm"> 
         <div class="modal-content"> 
         <div class="modal-header"> 
          <button type="button" class="close" data-dismiss="modal">&times;</button> 
          <h4 class="modal-title">Delete Product</h4> 
         </div> 
         <div class="modal-body"> 
          <p>Are you sure, want to delete this?</p> 
         </div> 
         <div class="modal-footer"> 
          <button type="button" class="btn btn-default" data-dismiss="modal">Close</button> 
         <a href="delete.php?pro=<?php echo $id; ?>"><span class="btn btn-danger" >Delete</span></a> 
         </div> 
         </div> 
        </div> 
       </div> 
Смежные вопросы