簡體   English   中英

如何檢查PHP中是否已單擊提交按鈕

[英]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> &nbsp;&nbsp;&nbsp;
  <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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM