模仿的百度贴吧的一个效果 就是在帖子列表页点击某个帖子标题进入到这个帖子主页 我是根据点击的哪个标题就POST哪个title值去数据库查询数据 点击进去后把帖子的作者和标题内容显示出来 我下面也加了一个回复的功能 把提交的回帖数据插入到一个从表里面 我的问题出在因为提交回复是在本页面完成的 当提交回复动作完成后帖子的标题和作者内容这些东西并没有接收到POST过来的值 也没法去数据库查询 所以会报错 那么怎么样可以一直查询到帖子的标题和作者这些东西呢?如果做一个if判断 如果接收到了POST值就正常查询数据库的内容 如果没有接收到值该怎么处理呢?
回复讨论(解决方案)
帖子列表页点击某个帖子标题进入到这个帖子主页
而这个 帖子主页 显示有帖子和回复的内容,并有一个供回复的表单,提交到本页
由于进入 帖子主页 时,有从 帖子列表页 传入的 帖子id,所以供回复的表单也需要带上 帖子id
其实道理很简单,如果不带上 帖子id 的话,你就没办法知道回复是给谁的了
帖子主页 的工作流程是:
检查是否是表单提交
如果是,则将回复入库
按传入的 帖子id 从表中读取内容和回复,并显示出来
帖子列表页点击某个帖子标题进入到这个帖子主页
而这个 帖子主页 显示有帖子和回复的内容,并有一个供回复的表单,提交到本页
由于进入 帖子主页 时,有从 帖子列表页 传入的 帖子id,所以供回复的表单也需要带上 帖子id
其实道理很简单,如果不带上 帖子id 的话,你就没办法知道回复是给谁的了
帖子主页 的工作流程是:
检查是否是表单提交
如果是,则将回复入库
按传入的 帖子id 从表中读取内容和回复,并显示出来
你说的我都明白但是在帖子本页提交回复的话 那个跳转的post值怎么处理啊 如果提交回复的话 本页就没有就收到post值了啊 那么怎么查询显示啊 比如当前页地址是http://localhost/tieba3.php?id=4 我一提交回复的话怎么让地址栏还是id=4呢
既然回复是提交到本页,那么表单的 action 就不需要写
这样进入程序时的 url 参数就是不会变得
附上完整代码
帖子列表页
nbsp;html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transition al.dtd">
<script> <br />window.onload=function(){ <br /> var oIpt1=document.getElementById('ipt1'); <br /> var oIpt2=document.getElementById('ipt2'); <br /> var oIpt3=document.getElementById('ipt3'); <br /> var oTxt1=document.getElementById('txt1'); <br /> var oSub=document.getElementById('sub'); <br /> var re=/^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/; <br /> oIpt1.onblur= onblurHandler; <br /> oIpt2.onblur= onblurHandler; <br /> oIpt3.onblur= onblurHandler; <br /> function onblurHandler(event){ <br /> var target=event.target; <br /> var oV1= target.value; <br /> if (oV1=='') { <br /> target.style.border='1px solid red'; <br /> } <br /> else{ <br /> target.style.border=''; <br /> } <br /> } <br />} <br /></script>
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 $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 '
'.$v['title'].'';
}
?>
fenye();
?>