php 모방 qq 공간 또는 친구 권 게시 동태,댓 글 동태,댓 글 답장,동적 또는 댓 글 삭제 기능(중)

24407 단어 phpqq 공간친구 권
4전편에 세이 에서 동 태 를 어떻게 보 여 주 었 는 지 살 펴 보 겠 습 니 다.남 은 댓 글 동 태 를 살 펴 보고 댓 글 을 달 고 동 태 를 삭제 하 며 댓 글 기능 을 살 펴 보 겠 습 니 다.이 몇 가지 기능 은 약간 복잡 합 니 다~~
1.사고방식 은 다음 과 같다.
(1)당신 이 동 태 를 발표 한 후에 누군가가 이 동 태 를 평론 할 것 입 니 다.평론 을 한 후에 당신 도 이 평론 에 대답 할 것 입 니 다.(여기 댓 글 은 표 한 장,답장 도 표 한 장)
(2)동 태 를 삭제 합 니 다:동 태 를 댓 글 과 연결 하고 답장 을 모두 삭제 합 니 다.댓 글 삭제:이 댓 글 만 삭제
2.코드 를 쓰기 전에 저 는 절 차 를 한 번 말씀 드 리 고 싶 습 니 다.
(1)발표 동태-평론-회답-재 회답
(2)위의 절 차 를 세분 화하 고 종이 에 먼저 쓰 고 올 리 겠 습 니 다.코드 글 자 는 분명하게 표현 할 수 없습니다.(주의해 야 할 것 은 제 가 원 하 는 기능 의 실현 은 똑 같은 것 이 아 닙 니 다)


3.먼저 코드 를 블록 으로 나 누 어 설명 하고 마지막 으로 홈 페이지 코드 를 완전히 첨부 합 니 다(전편 포함)
이전 편 에 서 는 게시 동태,팝 업 댓 글 상자 가 구현 되 었 습 니 다.이 제 는 아래로 내 려 갑 니 다.
각각 qqqfriends,qqdongtai,qqpinglun,qqqhuifu 표를 보 세 요.이것 은 초기 상태 입 니 다.




먼저 사용자 이사 로 로그 인 합 니 다.데이터베이스 qqfriends 표 에서 알 수 있 듯 이 이사 의 친 구 는 zhangsan 이 고 zhaoliu 입 니 다.그러면 그의 공간 에 표 시 된 친구 의 동 태 는 다음 과 같 습 니 다.


이전 편 에 비해 이 편 에서 누가 로그 인 했 는 지 중국어 로 표 시 했 습 니 다.

<?php
   session_start();
   $uid = "";
   if(empty($_SESSION["uid"]))
   {
    header("location:login.php");
    exit;
   }
   $uid = $_SESSION["uid"];
   require "../DB.class.php";
   $db = new DB();
   $sql = "select name from qqusers where uid='{$uid}'";
   $name = $db->strquery($sql);
   echo "  :"."<span class='qid' yh='{$uid}'>{$name}</span>";
   ?>
STEP 1:댓 글
1,댓 글 장 3 의 동태,"확인"을 클릭 하면 두 번 째 그림 입 니 다~

2.댓 글 의 내용 을 데이터베이스 에 기록 합 니 다.

 //      ,     id  
  var code=""; 
 $(".pl").click(function(){     
    code = $(this).attr("code"); //    id                     
    }) 
//         
$("#tjpl").click(function(){
  var plnr = $(".pldt").val();
  var plid = code; //     id
  $.ajax({
  url:"pl-cl.php",
  data:{plnr:plnr,plid:plid},
  type:"POST",
  dataType:"TEXT",
  success:function(data){
   alert("    !");
   window.location.href="main.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;
  }      
  });            
 }) 
pl-cl.php 페이지


<?php
require "../DB.class.php";
$db = new DB();
session_start();
$uid = $_SESSION["uid"];
$plnr = $_POST["plnr"];
$dtid = $_POST["plid"];
$time = date("Y-m-d H:i:s", time());
$sql = "insert into qqpinglun values ('','{$dtid}','{$uid}','{$plnr}','{$time}')";
$db->query($sql,0);
?>
"왜 즐거워 요?"

3.댓 글 내용 읽 기:

<!--      --> 
<div id="dqpl">
<?php
 $sql = "select * from qqpinglun";
 $arr = $db->query($sql);
 foreach($arr as $v)
 {
  $sql = "select * from qqdongtai where dtid='{$v[1]}'";
  $arr2 = $db->query($sql);
  foreach($arr2 as $m)
  {
   //       
   $sql = "select name from qqusers where uid='{$v[2]}'";
   $name = $db->strquery($sql);
   //           “ ”
   if($v[2]==$uid)
   {
    $name =" ";
   }
   //         
   $sql = "select name from qqusers where uid=(select uid from qqdongtai where dtid='{$v[1]}')";
   $bpl = $db->strquery($sql);
   echo "<div class='a'><span class='xm'>{$name}</span>  <span class='xm'>{$bpl}</span>   :{$m[2]}<div>
    <div class='b'>{$v[3]}</div>
   <div class='c'>      :{$v[4]}</div>
   <div class='d'><button class='btn btn-primary hf' ids ='{$v[0]}'>  
   </button><span><a href='scpl-cl.php?code={$v[0]}'>    </a></span></div>";
  }
 }  
?>    
</div>
STEP 2:회복
1.방금 댓 글 에 답 하기:
2.답장 내용 을 데이터베이스 에 기록

   //      ,       id  
    var ids=""; 
    $(".hf").click(function(){     
       ids = $(this).attr("ids"); //    id      
//       alert((ids)); 
       $('#mM').modal('show');              
       }) 
   //           
   $("#tjhf").click(function(){
     var hfnr = $(".hfpl").val();
//     alert(hfnr);
//     alert(ids);
     $.ajax({
     url:"hf-cl.php",
     data:{hfnr:hfnr,ids:ids},
     type:"POST",
     dataType:"TEXT",
     success:function(data){
     alert("    !");
    window.location.href="main.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;
     }      
     });            
    }) 
hf-cl.php 페이지

<?phprequire "../DB.class.php";
$db = new DB();
session_start();
$uid = $_SESSION["uid"];
$hfnr = $_POST["hfnr"];
$cid = $_POST["ids"];
$time = date("Y-m-d H:i:s", time());
$sql = "insert into qqhuifu values ('','{$cid}','{$uid}','{$hfnr}','{$time}')";
$db->query($sql,0);
?>
qqhuifu 시 계 를 보 세 요.한 줄 더 늘 었 나 요?

3.답장 내용 읽 기:

<div id="dqhf"> 
     <!--     -->
    <?php
    $sql = "select * from qqhuifu where cid in (select cid from qqpinglun)";
    $arr = $db->query($sql);
    foreach($arr as $a)
    {
     $sql = "select * from qqpinglun where cid='{$a[1]}'";
     $arr2 = $db->query($sql);
     foreach($arr2 as $n)
     {
      //        
      $sql = "select name from qqusers where uid='{$a[2]}'";
      $name = $db->strquery($sql);
      //           “ ”
      if($a[2]==$uid)
      {
       $name =" ";
      }
      //          
      $sql = "select name from qqusers where uid=(select uid from qqpinglun where cid='{$a[1]}')";
      $bpl = $db->strquery($sql);
      echo "<div class='a'><span class='xm'>{$name}</span>  <span class='xm'>{$bpl}</span>   :{$n[3]}<div>
       <div class='b'>{$a[3]}</div>
      <div class='c'>    :{$a[4]}</div>
      <div class='d'><button class='btn btn-primary hf' ids ='{$a[0]}'>  
      </button><span><a href='schf-cl.php?code={$a[0]}'>    </a></span></div>"; 
     }
     }
    ?>
   </div>
답장 내용 이 표시 되 었 습 니 다:

STEP 3:삭제
1.동적 삭제:(댓 글 과 답장 포함)
scdt-cl.php

<?php
$code = $_GET["code"];
require "../DB.class.php";
$db = new DB();
$sql = "delete from qqdongtai where dtid='{$code}'";
$db->query($sql,0);
$sql2 = "delete from qqpinglun where dtid='{$code}'";
$db->query($sql2,0);
$sql3 = "delete from qqhuifu where cid=(select cid from qqpinglun where dtid='{$code}')";
$db->query($sql3,0);
header("location:main.php");
?>
2.댓 글 삭제:(답장 포함)
scpl-cl.php

<?php
$code = $_GET["code"];
require "../DB.class.php";
$db = new DB();
$sql2 = "delete from qqpinglun where cid='{$code}'";
$db->query($sql2,0);
$sql3 = "delete from qqhuifu where cid='{$code}'";
$db->query($sql3,0);
header("location:main.php");
?>
3.답장 삭제:(자신 만)
schf-cl.php

<?php
$code = $_GET["code"];
require "../DB.class.php";
$db = new DB();
$sql2 = "delete from qqpinglun where cid='{$code}'";
$db->query($sql2,0);
$sql3 = "delete from qqhuifu where cid='{$code}'";
$db->query($sql3,0);
header("location:main.php");
?>
삭제 에 대해 서 는 한 번 씩 안 해 볼 게 요.
홈 페이지 의 모든 코드:

<!DOCTYPE html>
<html> 
 <head>
  <meta charset="UTF-8">
  <title></title>
   <!--  bootstrap css  -->
  <link type="text/css" rel="stylesheet" href="../bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="external nofollow" />
  <!--  js -->
  <script src="../jquery-3.2.0.js"></script>
  <!--  bootstrap js  -->
  <script src="../bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
  <style>
   #body{
    height: auto;
    width: 1000px;
    margin: 0px auto;
   }
   #xdt{
    height: 200px;
    width:1000px; 
    border: 1px solid cadetblue;
    }
    /*     div*/
    .fdt{
    position: relative;  
    width: 1000px;
    }
    /*    div*/
     #nr{
     width: 1000px;
     }
    /*       */
    .a{
    float: left;
    min-height:40px;
    width: 1000px;
    background-color: goldenrod;
    }
    /*  */
    .xm{
    font-size: 18px;
    color: brown;
    font-weight: bold;
    }
    /*        */
    .b{
    float: left;
    text-align: left;
    height:100px;
    line-height: 50px;
    width: 100%;
    background-color: greenyellow;
    }
    /*           */
    .c{
    height:30px;
    width: 800px;
    float: left;
    font-size: 12px;
    text-align:right;
    background-color: gainsboro;
     }
     /*        */
    .d{
    height:30px;
    width: 200px;
    float: left;
    font-size: 15px;
    text-align:center;
    background-color: gainsboro;
     }
     /*    div*/
     #dqpl{
     width: 1000px;
     }
    #dqhf
    {
     width: 1000px;
     }
  </style>     
 </head>
 <body>
  <div id="body">
  <?php
   session_start();
   $uid = "";
   if(empty($_SESSION["uid"]))
   {
    header("location:login.php");
    exit;
   }
   $uid = $_SESSION["uid"];
   require "../DB.class.php";
   $db = new DB();
   $sql = "select name from qqusers where uid='{$uid}'";
   $name = $db->strquery($sql);
   //        uid。
   echo "  :"."<span class='qid' yh='{$uid}'>{$name}</span>";
   ?>
  <!--   -->
  <div id="xdt">
   <p>    :</p>
   <textarea cols="100px" rows="5px" name="xdt" class="xdt"></textarea>
   <input type="submit" value="  " id="fb" />  
  </div>
  <!--      -->
  <!--      --> 
  <div class="fdt">
   <p style="color: brown; font-family: '    ';font-weight: bold;font-size: 20px; margin-bottom: 20px; margin-top: 20px;">    :<p>
   <!--      -->
   <div id="nr">
    <?php
    $date = date ("Y-m-d H:i:s");
    $sql = "select * from qqdongtai where uid='{$uid}' or uid in (select uid from qqfriends where fname =(select name from qqusers where uid='{$uid}')) order by time desc";
    //echo $sql;
    $arr = $db->query($sql);
//    var_dump($arr);
    foreach($arr as $v)
    {
     $sql = "select name from qqusers where uid='{$v[1]}'";
     $name = $db->strquery($sql);
     if($v[1]==$uid)
     {
      $name = " ";
     }
     echo "<div class='a'><span class='xm'>{$name}</span>    :</div>
     <div class='b'>{$v[2]}</div>
     <div class='c'>      :{$v[3]}</div>
     <div class='d'><button class='btn btn-primary pl' data-toggle='modal' data-target='#myModal' code ='$v[0]'>  </button>
      <span><a href='scdt-cl.php?code={$v[0]}'>    </a></span></div>";
    }
    ?>
   </div>   
     <!--      --> 
   <div id="dqpl">
   <?php
    $sql = "select * from qqpinglun";
    $arr = $db->query($sql);
    foreach($arr as $v)
    {
     $sql = "select * from qqdongtai where dtid='{$v[1]}'";
     $arr2 = $db->query($sql);
     foreach($arr2 as $m)
     {
      //       
      $sql = "select name from qqusers where uid='{$v[2]}'";
      $name = $db->strquery($sql);
      //           “ ”
      if($v[2]==$uid)
      {
       $name =" ";
      }
      //         
      $sql = "select name from qqusers where uid=(select uid from qqdongtai where dtid='{$v[1]}')";
      $bpl = $db->strquery($sql);
      echo "<div class='a'><span class='xm'>{$name}</span>  <span class='xm'>{$bpl}</span>   :{$m[2]}<div>
       <div class='b'>{$v[3]}</div>
      <div class='c'>      :{$v[4]}</div>
      <div class='d'><button class='btn btn-primary hf' ids ='{$v[0]}'>  
      </button><span><a href='scpl-cl.php?code={$v[0]}'>    </a></span></div>";
     }
    }  
   ?>    
   </div>
   <!--       --> 
   <div id="dqhf"> 
    <?php
    $sql = "select * from qqhuifu where cid in (select cid from qqpinglun)";
    $arr = $db->query($sql);
//    var_dump($arr);
    foreach($arr as $a)
    {
     $sql = "select * from qqpinglun where cid='{$a[1]}'";
     $arr2 = $db->query($sql);
//     var_dump($arr2);
     foreach($arr2 as $n)
     {
      //        
      $sql = "select name from qqusers where uid='{$a[2]}'";
      $name = $db->strquery($sql);
      //           “ ”
      if($a[2]==$uid)
      {
       $name =" ";
      }
      //          
      $sql = "select name from qqusers where uid=(select uid from qqpinglun where cid='{$a[1]}')";
      $bpl = $db->strquery($sql);
      echo "<div class='a'><span class='xm'>{$name}</span>  <span class='xm'>{$bpl}</span>   :{$n[3]}<div>
       <div class='b'>{$a[3]}</div>
      <div class='c'>    :{$a[4]}</div>
      <div class='d'><button class='btn btn-primary hf' ids ='{$a[0]}'>  
      </button><span><a href='schf-cl.php?code={$a[0]}'>    </a></span></div>"; 
     }
     }
    ?>
   </div>
  </div>
  <!--      (Modal) -->
   <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
     <div class="modal-content">
      <div class="modal-header">
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
       <h4 class="modal-title" id="myModalLabel">  </h4>
      </div>
      <textarea class="modal-body pldt" cols="80px"></textarea>
      <div class="modal-footer">
       <button type="button" class="btn btn-default" data-dismiss="modal">  </button>
       <button type="button" class="btn btn-primary" id="tjpl">    </button>
      </div>
     </div>
    </div>
   </div> 
   <!--     -->    
  <!--      (Modal) -->
   <div class="modal fade" id="mM" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
    <div class="modal-dialog">
     <div class="modal-content">
      <div class="modal-header">
       <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
       <h4 class="modal-title" id="myModalLabel">  </h4>
      </div>
      <textarea class="modal-body hfpl" cols="80px"></textarea>
      <div class="modal-footer">
       <button type="button" class="btn btn-default" data-dismiss="modal">  </button>
       <button type="button" class="btn btn-primary" id="tjhf">    </button>
      </div>
     </div>
    </div>
   </div> 
   <!--     --> 
  </div> 
 </body>
</html>
   <script>
//ajax  :            ,         
//    $.ajax({
//     url:"sx-cl.php",
//     dataType:"TEXT",
//     success:function(data){
//      var hang = data.trim().split("|");
//      var str="";
//      for(var i=0;i<hang.length;i++)
//      {
//       var lie = hang[i].split("^");        
//        str = str + "<div class='a'><span class='xm'>"+lie[1]+"</span>    :</div><div class='b'><p>"+lie[2]+"</p><div class='c'>      :"+lie[3]+"</div>";              
//       str =str+"<div id='d'><button class='btn btn-primary pl' data-toggle='modal' data-target='#myModal' code ='"+lie[0]+"'>  </button><span><a href='del.php?code="+lie[0]+"'>    </a></span></div>";
//      }
//      $("#nr").html(str);
//     //  “    ”   code       “    ”
//     //       :  ajax    ,               
//       $(".pl").click(function(){
//        code = $(this).attr("code"); //    id                 
//       })     
//     } 
//    }); 
//    
//php  :       ,          ,     
    $("#fb").click(function(){
    var dt= $(".xdt").val();
    var uid = $(".qid").attr("yh");
    $.ajax({
     url:"main-cl.php",
     data:{dt:dt},
     type:"POST",
     dataType:"TEXT",
     success:function(data){
      alert("      !");
      window.location.href="main.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;
     } 
    });
    }) 
    //      ,     id  
     var code=""; 
    $(".pl").click(function(){     
       code = $(this).attr("code"); //    id                     
       }) 
   //         
   $("#tjpl").click(function(){
     var plnr = $(".pldt").val();
     var plid = code; //     id
//    alert(plnr);
//    alert(plid); 
     $.ajax({
     url:"pl-cl.php",
     data:{plnr:plnr,plid:plid},
     type:"POST",
     dataType:"TEXT",
     success:function(data){
      alert("    !");
      window.location.href="main.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;
     }      
     });            
    }) 
   //      ,       id  
    var ids=""; 
    $(".hf").click(function(){     
       ids = $(this).attr("ids"); //    id      
//       alert((ids)); 
       $('#mM').modal('show');              
       }) 
   //           
   $("#tjhf").click(function(){
     var hfnr = $(".hfpl").val();
//     alert(hfnr);
//     alert(ids);
     $.ajax({
     url:"hf-cl.php",
     data:{hfnr:hfnr,ids:ids},
     type:"POST",
     dataType:"TEXT",
     success:function(data){
     alert("    !");
    window.location.href="main.php" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ;
     }      
     });            
    }) 
 </script>
지금까지 동태 적 인 발표,동태 적 인 댓 글,동태 적 인 답장,동태 적 인 삭 제 는 모두 다 썼 지만 아직 해결 되 지 않 은 문제 가 있 습 니 다.즉,답장 의 답장 문제 입 니 다.아래 의 약 도 를 보십시오.
즉,회신 표 중 일 부 는 답장 댓 글 이 고,나머지 부분 은 답장 답 글 입 니 다.
 
먼저 직면 한 문 제 를 정리 하 다.
(1)왜 ajax 출력 button 에 클릭 이벤트 가 추가 되 지 않 습 니까?
     ajax 는 비동기 ajax 이기 때문에 그 뒤 를 이 어야 합 니 다.
(2)왜 button 의 값 을 찾 지 못 합 니까?
(3)phop 페이지 에서 ajax 는 언제 사용 합 니까?phop 언제 써 요?
    이 인 스 턴 스 에서 저 는 ajax 로 데이터 베 이 스 를 기록 합 니 다.데이터베이스 에서 내용 을 php 로 읽 습 니 다.(이전 편 에서 동 태 는 ajax 로 읽 었 습 니 다.이 편 에 서 는 두 가지 방법 이 있 습 니 다.자세 한 내용 은 모든 코드 를 보십시오)
(4)마지막 으로 논리 가 뚜렷 하고 관건 적 이 며 특히 표 와 표 간 의 관계 가 있다.

좋은 웹페이지 즐겨찾기