這個頁面就是類似貼吧的從貼文清單點進去後某個文章的首頁 回複是提交到本頁的 遇到下面兩個問題了 大家幫我看看謝謝
form表單
下面是插入語句
$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
$stnt=$pdo->prepare("insert into reply(reid,name,content)values(:reid,:name,:content)");
$stnt->execute($_POST);
這兩個代碼都是寫在一個頁面的 頁面出現兩個問題 我提交表單後這個輸入框裡面的東西可以插入到資料庫中 然後表單就會清空 但是我點擊重新整理頁面後總是有一個提示框 就是下面這個圖片的內容 如果我點擊繼續後剛才已經提交的資料就會再插入一遍到資料庫中 而且我換別的瀏覽器重新整理頁面也是提示這個框 這是第一個問題
第二個問題是從貼文清單點擊進這個文章後就顯示報錯了 因為上面這個代碼還沒有往資料庫裡面插入資料呢 沒有產生POST的值 如果插入資料後這個報錯就消失了 但是每次點進文章還是會報錯啊 因為是提交到本頁的回複所以沒有寫action 但是我還是試著這樣寫了一個if判斷 但是不對啊 不報錯了但是提交資料後也插入不到資料庫裡面了 這個問題該怎麼解決呢
if(isset($_GET['reid'])
{
$pdo=new PDO("mysql:host=localhost;dbname=t1","root","");
$stnt=$pdo->prepare("insert into reply(reid,name,content)values(:reid,:name,:content)");
$stnt->execute($_POST);
}
回複討論(解決方案)
1.重新整理頁面的時候會把$_POST裡面的內容也帶上。所以重新整理等於一次重複的表單提
2.判斷應該是判斷$_POST['reid'],而不是$_GET
1.重新整理頁面的時候會把$_POST裡面的內容也帶上。所以重新整理等於一次重複的表單提
2.判斷應該是判斷$_POST['reid'],而不是$_GET
第二個問題我改了一下 已經沒問題了 那麼第一個問題怎麼解決呢?
第一個問題可以通過這個方法解決:
將真正的處理資料部分放到一個單獨的檔案中進行,處理完畢redirect回顯示頁面。
第一個問題可以通過這個方法解決:
將真正的處理資料部分放到一個單獨的檔案中進行,處理完畢redirect回顯示頁面。
你是說把插入的資料的代碼的那一段另寫一個檔案是嗎 插入完成後再跳回來 是這樣的吧 但是跳回來的那個地址了的POST值怎麼辦呢 你再看一下我昨天提問的另一個文章
http://bbs.csdn.net/topics/391903553 這個代碼比較完整 我上面的代碼這樣就是為了省略那個提交的post值所以才提交到本頁的 但是現在又要改回回去 那個post值怎麼辦呢?
“那個POST值”是什麼意思?你需要在插入資料成功之後,回到的頁面再次顯示這些數值?如果是這樣,我建議你回到先前頁面的時候帶一個該記錄的ID,然後用資料庫查詢的方式把這個紀錄拿回來,再把欄位賦值給表單。