Baidu Tieba を模倣する効果の 1 つは、投稿リスト ページで投稿のタイトルをクリックして投稿のホームページにアクセスし、クリックした後、どのタイトルに基づいてどのタイトルの値をクエリするかです。投稿の投稿者とタイトルが表示されます。また、このページで返信データをスレーブテーブルに挿入する機能も追加しました。返信の送信アクションが完了すると、投稿のタイトルと作成者の内容が表示されます。POST から値を受け取っていないため、データベースにクエリを実行できないため、エラーが報告されます。では、常にタイトルと作成者をクエリするにはどうすればよいですか。ポストの? if判定を行った場合、POST値を受け取った場合、通常通りデータベースの内容を問い合わせて値を受け取らなかった場合はどうすればよいでしょうか。
ディスカッションへの返信 (解決策)
投稿一覧ページの投稿タイトルをクリックして投稿ホームページにアクセスします
この投稿ホームページには投稿と返信の内容が表示され、このページに送信される返信用のフォームがあります
投稿を入力するため トップページに入ると、投稿一覧ページから投稿IDが渡されるので、返信用のフォームにも投稿IDを持ってくる必要があります
実は理由はとても簡単です。投稿 ID を持っていない場合、返信の宛先を知る方法はありません。
投稿ホームページのワークフローは次のとおりです。
フォーム送信であるかどうかを確認します
フォーム送信である場合。 、返信をデータベースに保存します
受信した投稿IDに従ってテーブルから内容を読み取り、返信して表示します
投稿リストページで投稿タイトルをクリックして投稿のホームページに入ります
そして、この投稿ホームページには投稿と返信の内容が表示され、このページに返信するためのフォームがあります
投稿ホームページに入る際に投稿一覧ページから渡される投稿 ID があるため、返信フォームには投稿 ID も必要です
実際、その理由は非常に簡単です。投稿 ID を持っていない場合、誰に対する返信なのかを知る方法がありません。
投稿ホームページのワークフローは次のとおりです:
フォーム送信であるかどうかを確認します
フォーム送信である場合は、返信をデータベースに保存します
押し込みます 投稿 ID がテーブルからコンテンツと返信を読み取って表示します
おっしゃることはわかりますが、投稿ページで返信した場合、投稿値がジャンプした場合、このページに投稿値がない場合はどうすればよいでしょうか?たとえば、現在のページのアドレスは http://localhost/tieba3.php?id=4 ですが、返信を送信してもアドレス バーに id=4 が表示されるのはなぜですか?
返信はこのページに送信されるため、プログラム入力時の url パラメータが
にならないように、フォームアクションに
を記述する必要はありません。
附上完整代码
帖子列表页
<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<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 '
'.$v['title'].'';
}
?>
fenye();
?>