当Duplicate被检查数据并且确认框apears我想按下ok按钮时插入数据。
当我按下取消按钮时,数据不应插入数据库。
我该怎么做?这是我到目前为止所做的:
<?php
//insert data to database
$category=Null;
$model=Null;
$part=Null;
$remarks=Null;
$partcode=Null;
$partnumber=Null;
$user=$_SESSION['login_user'];
//Recive data from form
if(isset($_POST['category'])){$category = $_POST['category'];}
if(isset($_POST['model'])){$model = $_POST['model'];}
if(isset($_POST['part'])){$part= $_POST['part'];}
if(isset($_POST['remarks'])){$remarks = $_POST['remarks'];}
//Check Duplicate Data From DB
$check="Select * From part Where Category='$category' and Model='$model' and PartName='$part'";
$checkrun=mysqli_query($conn,$check);
$checkrow=mysqli_num_rows($checkrun);
if($checkrow>0){
echo "<script>confirm('Duplicate Data! Click OK to Add & Cancel to Edit')</script>";
}
//Make Part Number
$maxPartQry="Select max(PartCode) FROM part";
$maxPartRun=mysqli_query($conn,$maxPartQry);
$maxpart=mysqli_fetch_array($maxPartRun);
$partcode=$maxpart[0]+1;
$invID = str_pad($partcode,6,'0', STR_PAD_LEFT);
$partnumber=$model."-".$part."-".$invID;
$product;
//Insert Query For inserting data in DB
$sql = "INSERT INTO `part` (`ID`, `PartCode`, `PartNumber`, `Category`, `Model`, `PartName`, `Remarks`, `Date`, `Name`)
VALUES (NULL, '$partcode', '$partnumber', '$category', '$model', '$part','$remarks', NOW(), '$user');";
if(($category != Null) ){
$insert=mysqli_query($conn,$sql);
if($insert){
echo "<script>window.alert('New Part No. ".$partnumber." is Genrated Successfully!!')</script>";
}
}
?>
答案 0 :(得分:0)
您需要了解不同的代码在不同的位置执行。例如:
因此,如果您希望实现以下场景,则需要向服务器发出多个请求:
步骤1,3,4发生在客户端。步骤2,5发生在服务器端
在用户取消的情况下,服务器端代码只是跳过第二个帖子请求。
因此,您需要在服务器端使用额外的代码来区分这两个请求(这是一个确认请求吗?还是应该允许重复?),并相应地调整其行为。如果用户确认应插入副本,则客户端需要额外的代码才能生成第二个请求。
当然,如果客户端代码是静态的而不是在服务器端生成(例如谷歌REST HTTP接口),所有这些都会更加清晰但我担心解释这一点只会让你感到困惑。