2017-02-05 23 views
0

Как установить диалоговое окно подтверждения всплывающих окон после проверки формы в php? Если пользователь нажимает кнопку отправки, он должен подтвердить ввод пользователя, затем, наконец, он попросит подтверждение, например «Вы хотите сохранить?». с кнопками ok и cancel, тогда только он должен сохранять данные в базе данных. см. Ниже код.как установить диалоговое окно подтверждения 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> 

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

ответ

1

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

'; 
+0

Спасибо за ваш быстрый ответ, он не запрашивает ни одного подтверждения, и он также не принимает ввод. –

+0

Я только что скорректировал код. Произошла ошибка, так как функция также называлась подтверждением. Я просто попробовал, теперь он должен работать :-) – saperlipopette

+0

Большое спасибо ..... У меня отличный день !!! –

0

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

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

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

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

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^