Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用对话框确认后插入重复数据_Javascript_Php - Fatal编程技术网

Javascript 使用对话框确认后插入重复数据

Javascript 使用对话框确认后插入重复数据,javascript,php,Javascript,Php,当选中“复制数据”且确认框显示时,我想在按下“确定”按钮时插入数据 当我按下“取消”按钮时,数据不应插入数据库中 我该怎么做?以下是我迄今为止所做的: <?php //insert data to database $category=Null; $model=Null; $part=Null; $remarks=Null; $partcode=

当选中“复制数据”且确认框显示时,我想在按下“确定”按钮时插入数据

当我按下“取消”按钮时,数据不应插入数据库中

我该怎么做?以下是我迄今为止所做的:

<?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>";

        }
        }

    ?>

您需要了解不同的代码段在不同的位置执行。例如:

  • SQL查询在服务器端执行
  • 警报/确认框在客户端执行(web浏览器)
  • 在客户端执行的代码在服务器端生成
因此,如果您希望实现以下场景,则需要向服务器发出多个请求:

  • 用户将数据发布到服务器
  • 服务器响应数据重复(并返回脚本代码供用户确认)
  • 执行确认代码时,用户接受插入副本
  • 向服务器发送确认信息,或者通过添加“accept duplicate”(接受重复)标志再次发布数据(通常,如果服务器是无状态的)
  • 服务器接收确认/second post请求,确定它应该接受重复的请求,并执行相应的SQL查询以进行插入 步骤1、3、4发生在客户端。步骤2、5发生在服务器端

    在用户取消的情况下,服务器端代码只是跳过第二个post请求

    因此,服务器端需要额外的代码来区分这两个请求(这是确认请求吗?还是应该允许重复?),并相应地调整其行为。如果用户确认应该插入一个副本,您需要在客户端额外的代码来生成第二个请求


    当然,如果客户端代码是静态的而不是在服务器端生成的(例如,google REST HTTP接口),那么所有这些都会更加清晰,但我担心解释这一点目前只会让您感到困惑

    你的密码在哪里?你的mysql语法在哪里?你的问题是什么?为我写代码?这是个笑话吗?你甚至没有格式化你的代码。问题在哪里?如何形成代码我直接回答编辑Joshua Bakker的代码请指导我