[英]How to check if a submit button has already been clicked in PHP
我基本上有一個updatecart.php腳本,一旦單擊了HTML頁面上的提交按鈕,該腳本會將數據插入數據庫表中,然后轉到display.php,其中顯示更新的內容。 我的問題是我顯示的數據中有一個數量字段,如果用戶單擊提交按鈕(向購物車中添加東西),那么我希望數量增加用戶在下拉菜單中選擇的數量在HTML頁面中。 現在,如果用戶再次單擊“提交”按鈕,則不會發生任何事情,因為將相同的數據添加到數據庫表中。
碼:
HTML:
<form name = "AddToCart" action ="../updatecart.php" method='post'>
Quantity:
<select name="Quantity">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<input type ="submit" name ="Add" value="Add To Cart"/>
</form>
updatecart.php:
<?php
// Connection to database omitted
$Quantity = $_POST['Quantity'];
$query = "INSERT INTO Cart VALUES
('1', 'The Fiqh of Dawah', '18.00', 'Books', '$Quantity')";
mysql_query($query);
header("location:displaycart.php");
?>
display.php:
//Not necessary to show this as it simply uses `echo` to create a table and display the whole table data with `SELECT * FROM Cart`
您需要通過先執行SELECT
來檢查商品是否已存在於購物車中,然后在INSERT
(如果購物車中該商品不存在任何行)或UPDATE
(如果此商品已在購物車中)之間進行選擇。
在MySql中,還可以通過使用INSERT ... ON DUPLICATE KEY UPDATE
語法來做到這一點。 但是您將需要有一個主鍵才能這樣做。
您可以使用isset($_POST['Add'])
檢查是否提交了提交按鈕
喜歡
if(isset($_POST['Add']))
{
$Quantity = $_POST['Quantity'];
$query = "INSERT INTO Cart VALUES
('1', 'The Fiqh of Dawah', '18.00', 'Books', '$Quantity')";
mysql_query($query);
header("location:displaycart.php");
}
您可以在頂部的updatecart.php中進行檢查,以檢查是否已單擊“提交”。
就像是
isset($_POST['Add']) {
// insert data into DB
}
else {
// redirect somewhere as they havent clicked Submit button
}
在輸入數據庫之前,還應該通過檢查/清理來運行用戶數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.