不重複我有這樣的代碼:添加到數據庫。在刷新
Episode.php
<?$feedback = new feedback;
$articles = $feedback->fetch_all();
if (isset($_POST['name'], $_POST['post'])) {
$cast = $_GET['id'];
$name = $_POST['name'];
$email = $_POST['email'];
$post = nl2br ($_POST['post']);
$ipaddress = $_SERVER['REMOTE_ADDR'];
if (empty($name) or empty($post)) {
$error = 'All Fields Are Required!';
}else{
$query = $pdo->prepare('INSERT INTO comments (cast, name, email, post, ipaddress) VALUES(?, ?, ?, ?, ?)');
$query->bindValue(1, $cast);
$query->bindValue(2, $name);
$query->bindValue(3, $email);
$query->bindValue(4, $post);
$query->bindValue(5, $ipaddress);
$query->execute();
} }?>
<div align="center">
<strong>Give us your feedback?</strong><br /><br />
<?php if (isset($error)) { ?>
<small style="color:#aa0000;"><?php echo $error; ?></small><br /><br />
<?php } ?>
<form action="episode.php?id=<?php echo $data['cast_id']; ?>" method="post" autocomplete="off" enctype="multipart/form-data">
<input type="text" name="name" placeholder="Name" />/<input type="text" name="email" placeholder="Email" /><small style="color:#aa0000;">*</small><br /><br />
<textarea rows="10" cols="50" name="post" placeholder="Comment"></textarea><br /><br />
<input type="submit" onclick="myFunction()" value="Add Comment" />
<br /><br />
<small style="color:#aa0000;">* <b>Email will not be displayed publicly</b></small><br />
</form>
</div>
Include.php
class feedback { public function fetch_all(){
global $pdo;
$query = $pdo->prepare("SELECT * FROM comments");
$query->bindValue(1, $cast);
$query->execute(); return $query->fetchAll();
} }
此代碼更新,因爲它是假設數據庫。但提交後,它會重新加載當前頁面,如表單操作中所述。
但是當我刷新頁面以查看正在添加的評論時,它會要求重新提交。如果我點擊提交,則評論會再次添加。
我該如何阻止這種情況發生?
也許我可以隱藏評論框並顯示一條感謝消息,但這不會停止重複輸入。
請幫忙。謝謝。
千電子伏
_「當我刷新頁面以查看正在添加的評論」時,您是否正在執行此操作,因爲您在提交表單後無法看到新添加的評論?我懷疑你正在包含'include.php',這是獲取評論,然後再執行'insert' ... –
嗨,ayman。這聽起來不錯,但我該如何改變這種情況? – kevstarlive
在插入新註釋之後,請取出註釋*。 –