繁体   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