как установить диалоговое окно подтверждения PHP перед сохранением и после проверки формы на одной странице

Как настроить диалоговое окно подтверждения всплывающего окна после проверки формы в php? Если пользователь нажимает кнопку «Отправить», он должен подтвердить введенные пользователем данные и, наконец, запросить подтверждающее сообщение типа «Хотите сохранить?» с кнопками ОК и Отмена, тогда только он должен сохранить данные в базу данных.
пожалуйста, обратитесь ниже код.

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

Помогите мне, пожалуйста.

0

Решение

Вы не можете сгенерировать диалоговое окно напрямую с помощью PHP, в своем последнем операторе if вы должны отобразить базовый 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>

';
1

Другие решения

Наиболее оптимальным решением является проведение двух проверок — на клиенте и на стороне сервера. Нет необходимости беспокоить сервер неверными данными, которые могут быть предварительно проверены на клиентском компьютере.

Для проверки на стороне клиента вам нужно написать некоторый javascript, который будет проверять форму после кликов пользователя Отправить кнопка. Конечно Отправить Кнопка должна быть кнопкой стандартного типа, вы не хотите, чтобы она действительно отправляла, а просто вызывала функцию проверки JavaScript. Вы можете использовать validate.js для этого, если хотите.

Таким образом, функция проверки, выполнив свою работу, отображает всплывающее окно с вопросом, сохранять данные или нет или … другое всплывающее окно с информацией о том, что форму необходимо исправить. Поместите эти две формы в невидимые блоки DIV и отображайте их при необходимости.
Теперь в вопросе всплывающее окно Хорошо Кнопка вызывает другую функцию javascript, которая теперь выполняет ajax-вызов на сервер, отправляющий все данные формы.

Если ваша проверка зависит от какого-либо состояния базы данных или чего-либо, что лежит на сервере, вы можете сделать один дополнительный вызов ajax в функции проверки, чтобы запросить у сервера дополнительную информацию или даже попросить его проверить некоторые поля мгновенно. Это полезно, например, если у вас есть форма регистрации и вы хотите немедленно отобразить информацию о том, что псевдоним уже используется, чтобы он мог изменить его, даже не нажимая нажмите кнопку.

Затем при получении этих данных сервером вы необходимость сделать другую проверку на стороне сервера для проверки целостности данных и возможных атак.

Надеюсь это поможет. Кстати, если вам нужно сделать такие действия на одной странице, я действительно рекомендую реализовать jQuery и validate.js.

0