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