回复讨论(解决方案)
帖子列表页点击某个帖子标题进入到这个帖子主页
而这个 帖子主页 显示有帖子和回复的内容,并有一个供回复的表单,提交到本页
由于进入 帖子主页 时,有从 帖子列表页 传入的 帖子id,所以供回复的表单也需要带上 帖子id
其实道理很简单,如果不带上 帖子id 的话,你就没办法知道回复是给谁的了
帖子主页 的工作流程是:
检查是否是表单提交
如果是,则将回复入库
按传入的 帖子id 从表中读取内容和回复,并显示出来
帖子列表页点击某个帖子标题进入到这个帖子主页
而这个 帖子主页 显示有帖子和回复的内容,并有一个供回复的表单,提交到本页
由于进入 帖子主页 时,有从 帖子列表页 传入的 帖子id,所以供回复的表单也需要带上 帖子id
其实道理很简单,如果不带上 帖子id 的话,你就没办法知道回复是给谁的了
帖子主页 的工作流程是:
检查是否是表单提交
如果是,则将回复入库
按传入的 帖子id 从表中读取内容和回复,并显示出来
你说的我都明白但是在帖子本页提交回复的话 那个跳转的post值怎么处理啊 如果提交回复的话 本页就没有就收到post值了啊 那么怎么查询显示啊 比如当前页地址是http://localhost/tieba3.php?id=4 我一提交回复的话怎么让地址栏还是id=4呢
既然回复是提交到本页,那么表单的 action 就不需要写
这样进入程序时的 url 参数就是不会变得
附上完整代码
帖子列表页
include "cookie.php";
echo $_COOKIE['username'];
?>
include 'function.php';
header('content-type:text/html;charset=utf-8;');
$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
$stmt=$pdo->prepare("select * from tieba");
$stmt->execute();
$res=$stmt->fetchall();
$rows=count($res);//总的条数
$pagesize=8;
if($rows==0){
$pagenum=0;
}else{
$pagenum=ceil($rows/$pagesize);//分成几页
}
if(isset($_GET['page'])){
$page=$_GET['page'];
if(empty($page)||$page<0||!is_numeric($page)) {
$page=1;
}else{
$page=intval($page);
}
}else{
$page=1;
}
if($page>$pagenum){
$page=$pagenum;
}
$startnum = ($page - 1)*$pagesize;
$display_page=5;
$query = "SELECT * FROM tieba LIMIT $startnum,$pagesize";
$stmt2=$pdo->prepare($query);
$stmt2->execute();
$res2=$stmt2->fetchall(PDO::FETCH_ASSOC);
foreach($res2 as $v){
echo '
}
?>
fenye();
?>