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