본 글은 주로 QQ 공간이나 모멘트를 흉내내어 업데이트 게시, 업데이트에 댓글 달기, 댓글에 답하기, 업데이트나 댓글 삭제(중) 기능을 소개하고 있습니다. 다이나믹스가 제시되었으니 이제 남은 댓글 다이나믹스, 댓글 답글, 다이나믹스 삭제, 댓글 기능을 살펴보도록 하겠습니다~~
1. 아이디어는 다음과 같습니다. (1) 게시물을 게시한 후 누군가가 게시물에 댓글을 달면 댓글에도 답글을 달게 됩니다. (여기의 댓글은 별도의 테이블에 있어야 하며 답변도 별도의 테이블에 있어야 합니다.)
(2) 업데이트 삭제: 예 업데이트, 댓글, 답글 모두 삭제, 댓글 삭제: 댓글만 삭제됩니다. 2. 코드를 작성하기 전에 프로세스를 검토하고 싶습니다.( 1) 게시물 업데이트 --- 댓글 --- 답글 --- 다시 답글
(2) 위 과정을 구체화하기 위해 먼저 종이에 작성한 후 코드 단어로는 명확하게 표현할 수 없습니다. 내가 원하는 기능 구현, 꼭 같지 않음) 셋째, 먼저 코드를 덩어리로 설명하고 마지막으로 메인 페이지 코드를 완전히 첨부하겠습니다 (이전 기사 포함)이전 기사에서 이미 게시 업데이트 및 팝업 댓글 상자를 구현하려면 아래로 이동하세요.
qqfriends, qqdongtai, qqpinglun, qqhuifu 테이블을 각각 살펴보세요. 초기 상태는입니다.
첫 번째 사용자 Li Si가 로그인합니다. 데이터베이스의 qqfriends 테이블에서 Li Si의 친구가 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>"; ?>
1단계: 댓글
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 페이지
행복하세요?":
3. 읽기 댓글 내용:
<?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); ?>
2단계: 답변
1. 방금 댓글에 답변: 2 답변 내용을 데이터베이스<!--读取评论内容--> <p 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 "<p class='a'><span class='xm'>{$name}</span>评论<span class='xm'>{$bpl}</span>的动态:{$m[2]}<p> <p class='b'>{$v[3]}</p> <p class='c'>发表评论时间:{$v[4]}</p> <p class='d'><button class='btn btn-primary hf' ids ='{$v[0]}'>回复 </button><span><a href='scpl-cl.php?code={$v[0]}'>删除评论</a></span></p>"; } } ?> </p>
에 작성합니다.
//定义空字符串,容纳回复评论的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" ; } }); })
qqhuifu 테이블을 확인하세요. 추가 행이 있나요?
3. 답글 내용 읽기:
<?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); ?>
답글 내용이 표시되었습니다.
3단계: 삭제
scdt-cl.php
<p 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 "<p class='a'><span class='xm'>{$name}</span>回复<span class='xm'>{$bpl}</span>的评论:{$n[3]}<p> <p class='b'>{$a[3]}</p> <p class='c'>回复时间:{$a[4]}</p> <p class='d'><button class='btn btn-primary hf' ids ='{$a[0]}'>回复 </button><span><a href='schf-cl.php?code={$a[0]}'>删除回复</a></span></p>"; } } ?> </p>
2. 댓글 삭제: (답글 포함)
scpl-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"); ?>
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"); ?>
메인페이지의 모든 코드 :
<?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"); ?>
즉, 답글 양식의 일부는 답글 댓글이고, 나머지 부분은 답글 답글입니다(약간 복잡함). 더 보고 싶으시면 계속해서 관심을 가져주세요( 아래) 계속됩니다~~
먼저 발생한 문제를 요약해 보겠습니다.
(1) Ajax의 버튼 출력에 클릭 이벤트를 추가할 수 없는 이유는 무엇입니까?
ajax는 비동기식 ajax이므로 바로 따라야 합니다.
(2) 왜 버튼의 값을 얻을 수 없나요------this
(3) PHP 페이지에서 Ajax는 언제 사용해야 하나요? PHP는 언제 사용하나요?
이 예에서는 ajax를 사용하여 데이터베이스에 데이터를 쓰고, PHP를 사용하여 데이터베이스의 콘텐츠를 읽습니다. (이전 기사에서는 ajax를 사용하여 역학을 읽었습니다. 이 기사에서는 두 가지 방법을 모두 사용할 수 있습니다. 자세한 내용은 전체 코드를 참조하십시오.)
(4) 마지막으로, 특히 테이블 간 연결에 대한 명확한 논리가 중요합니다.
위 내용은 PHP는 기능적 예를 실현하기 위해 QQ 공간을 모방합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!