如何在单个页面中设置保存前和表单验证后的PHP确认对话框

如何在单个页面中设置保存前和表单验证后的PHP确认对话框,php,dialog,box,confirmation,Php,Dialog,Box,Confirmation,在php中完成表单验证后,如何设置弹出确认对话框?如果用户单击submit按钮,它应该验证用户输入,然后,最后它会询问确认消息,如您想保存吗?使用“确定”和“取消”按钮,则只有它应该将数据保存到数据库中。 请参考下面的代码 <?php error_reporting( ~E_NOTICE ); $name_err=''; $name=''; $type_err=''; $type=''; if ($_SERVER['REQUEST_METHOD']

在php中完成表单验证后,如何设置弹出确认对话框?如果用户单击submit按钮,它应该验证用户输入,然后,最后它会询问确认消息,如您想保存吗?使用“确定”和“取消”按钮,则只有它应该将数据保存到数据库中。 请参考下面的代码

 <?php
    error_reporting( ~E_NOTICE );
    $name_err='';
    $name='';
    $type_err='';
    $type='';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    if (isset($_POST['submit'])) {

              $e = true;

        if (empty($_POST['name'])) {
            $name_err = "Please enter the Product Name";
            $e = false;
        } else {
            $name = $_POST['name'];
            // check if name only contains letters and whitespace

        }
     if (empty($_POST['type'])||$_POST['type']=="select") {
            $type_err = "Please select the Product Type";
            $e = false;
        } else {
            $type = $_POST['type'];

                   }
     $con = mysqli_connect("localhost", "root", "", "csr");
    if (!$con) {
        die('Could not connect: ' . mysql_error());
    }


}
//final check whether it is true the input will process

    if($e)
    {

        mysqli_select_db($con, "csr");

        mysqli_query($con, "insert into products(employee_id, name, type, brand, model, url, conditions, about, listedon, image_path, reserved_price, Purchased_price, buy_now_price, sale_end_date)
                                   values('$eid','$name','$type','$brand','$model','None','$condition','$about','$listedon','$imgName','$reserved_price','$Purchased_price','$buy_now_price','$sale_end_date')") or  die('Could not connect: ' . mysql_error());

        header('Location:/sellproduct/index/');
        mysqli_close($con);

    }
}
?>
 <form action=" "  method="post" class="stdform stdform2" autocomplete="off" enctype="multipart/form-data">

                    <p>
                             <input type="hidden" name="employee_id" value="" id="employee_id" />
                    </p>
                <p>
                    <label for="name" class="required">Product Name</label>
                    <span class="field">
                        <input type="text" name="name" id="name" value="<?php echo $name;?>" /><br><span class="error"><?php echo $name_err;?></span></span>

                </p>
                <p>
                    <label for="type" class="required">Product Type</label>
                    <span class="field">
                    <select name="type" id="type" minlength="2" maxlength="60">
                            <option value="select" label="Select" <?php echo ($type == "select" || empty($type) ? "selected='selected'" : "");  ?> selected disabled >Select</option>
                            <option value="Electronics" label="Electronics" <?php echo ($type == "Electronics" ? "selected='selected'" : ""); ?>>Electronics</option>
                            <option value="Appliances" label="Appliances" <?php echo ($type == "Appliances" ? "selected='selected'" : ""); ?>>Appliances</option>
 <form action=" "  method="post" class="stdform stdform2" autocomplete="off" enctype="multipart/form-data">

                    <p>
                             <input type="hidden" name="employee_id" value="" id="employee_id" />
                    </p>
                <p>
                    <label for="name" class="required">Product Name</label>
                    <span class="field">
                        <input type="text" name="name" id="name" value="<?php echo $name;?>" /><br><span class="error"><?php echo $name_err;?></span></span>

                </p>
                <p>
                    <label for="type" class="required">Product Type</label>
                    <span class="field">
                    <select name="type" id="type" minlength="2" maxlength="60">
                            <option value="select" label="Select" <?php echo ($type == "select" || empty($type) ? "selected='selected'" : "");  ?> selected disabled >Select</option>
                            <option value="Electronics" label="Electronics" <?php echo ($type == "Electronics" ? "selected='selected'" : ""); ?>>Electronics</option>
                            <option value="Appliances" label="Appliances" <?php echo ($type == "Appliances" ? "selected='selected'" : ""); ?>>Appliances</option>
 <form action=" "  method="post" class="stdform stdform2" autocomplete="off" enctype="multipart/form-data">

                    <p>
                             <input type="hidden" name="employee_id" value="" id="employee_id" />
                    </p>
                <p>
                    <label for="name" class="required">Product Name</label>
                    <span class="field">
                        <input type="text" name="name" id="name" value="<?php echo $name;?>" /><br><span class="error"><?php echo $name_err;?></span></span>

                </p>
                <p>
                    <label for="type" class="required">Product Type</label>
                    <span class="field">
                    <select name="type" id="type" minlength="2" maxlength="60">
                            <option value="select" label="Select" <?php echo ($type == "select" || empty($type) ? "selected='selected'" : "");  ?> selected disabled >Select</option>
                            <option value="Electronics" label="Electronics" <?php echo ($type == "Electronics" ? "selected='selected'" : ""); ?>>Electronics</option>
                            <option value="Appliances" label="Appliances" <?php echo ($type == "Appliances" ? "selected='selected'" : ""); ?>>Appliances</option>
</select><br><span class="error"><?php echo $type_err;?></span></span>                </p>

<p class="stdformbutton">
                    <input type="submit" class="bluishBtn button_small" name="submit" value="SAVE" id="submit">

                    <button name="cancel" id="cancel" type="button" class="greyishBtn button_small">Cancel</button>                </p>

</form>

请帮帮我。

您不能通过PHP直接生成对话框,在您的最终if语句中,您应该使用javascript回显一个基本html,该javascript将重定向到另一个PHP页面,并在参数中输入以插入它:

echo '

<html>
<script type="text/javascript">

function input_confirm(){

    var r = confirm("Confirm this input : '.$_POST['name'].'-'.$_POST['type'].'");
    if(r){
        window.location.href = "insert.php?type='.$_POST['type'].'&name='.$_POST['name'].'";
    }
}


</script>

<body onload="input_confirm()">
</body>

</html>

';

最理想的解决方案是在客户端和服务器端进行两次验证。不需要使用可以在客户机上预先验证的无效数据来干扰服务器

对于客户端验证,您需要编写一些javascript,在用户单击Submit按钮后验证表单。当然,提交按钮必须是标准类型的按钮,您不希望它实际提交,而只是调用javascript验证函数。如果需要,可以使用validate.js进行验证

所以,验证函数在完成它的工作后,会弹出一个问题,询问是否保存数据或。。。不同的弹出窗口显示需要更正表单的信息。将这两个表单放置在不可见的DIV块中,并在需要时显示它们。 现在弹出一个问题,OK按钮调用另一个javascript函数,该函数现在向发送所有表单数据的服务器发出ajax调用

如果您的验证依赖于某个数据库状态或服务器上的任何内容,那么您可以在验证函数中再调用一次ajax,要求服务器提供更多信息,甚至要求服务器立即验证某些字段。例如,如果您有注册表,并且希望立即向用户显示昵称已在使用中的信息,以便用户可以在按Sumbit之前更改昵称,则此功能非常有用

然后,在服务器收到此数据后,您需要进行另一个服务器端验证,以检查数据完整性和可能的攻击


希望这有帮助。顺便说一句,如果您需要在单个页面中执行这些操作,我真的建议您实现jQuery和validate.js

感谢您的及时回复,它没有询问任何确认框,也没有接受输入。我只是更正了代码。有一个错误,因为该函数也被称为确认。我刚试过,现在应该可以了:-非常感谢….祝你有一个美好的一天!!!你也是,如果我的评论对你有帮助的话,请不要忘记检查我的评论作为答案。是的……它工作得很好……我还有一个问题,请参考下面的url: