Всплывающее окно с подтверждением Да/Нет

  • Автор темы Автор темы nameivan
  • Дата начала Дата начала

nameivan

Новичок
Прошу помощи, уважаемое сообщество!
Из БД в табличном виде выводится инфа и напротив каждой строки есть пара кнопок - Изменить и Удалить.
Удалять просто так нельзя, необходимо вывести пользователю предупреждение с кнопками Да и Нет.

Само коно сделал так:
Код:
<!--a href=archive.php?id='.$row['id'].' title="Данная операция поместит объект в архив"><img src="assets/img/del.png"></a-->
 
<!-- Ссылки на вызов модальных окон-->
<a href=#win1 title="Данная операция поместит объект в архив"><img src="assets/img/del.png"></a>

<!-- Модальное окно -->
<a href="#x" class="overlay" id="win1"></a>
<div class="popup">
Данное действие поместит выбранный объект в архив без возможности восстановления! </br>Вы уверены? </br></br>
<input type="button" name="button" value="  Да  ">&nbsp;&nbsp;
<a title="Закрыть" href="#close"><span style="color: #000000;"><input type="button" name="button" value=" Нет "></span></a>
</div>

При нажатии Нет окно просто закрывается и мы остаемся на текущей странице. Но как организовать выполнение запроса на перемещение данных из одной таблицы в другую при нажатии Да и после выполнения запроса вывод сообщения об успешной операции? Желательно при этом вернуть пользователя на прежнюю страницу
 
Последнее редактирование:
при нажатии Да
обычно команда (в твоем случае удалить) это POST запрос, те нужна форма,
Желательно при этом вернуть пользователя на прежнюю страницу
после обработки (удаления) сервер возвращает header перенаправление на нужную страничку
после выполнения запроса вывод сообщения
часто используется решение под кодовым именем flash-message основное на session, к примеру https://github.com/tamtamchik/simple-flash
 
Ок. По первому пункту все понятно. Сделал форму. Пока все поля видимые, но позже спрячу их.
Но затык тут
<a href=#win1 title="Данная операция поместит объект в архив"><img src="assets/img/del.png"></a>
Как в эту ссылку на вызов модального окна поместить archive.php?id='.$row['id'].' ?

И как вставить в запрос на добавления в архив текущую дату? DATE() не срабатывает
Код:
    $result = mysqli_query($link,"INSERT INTO `archive` (nom_in_filial, tid, address,datearchive, user)
                        VALUES ('".$_POST['nom_in_filial']."','".$_POST['tid']."','".$_POST['address']."','DATE()','".$_POST['user']."')");
 
<a href=#win1 title="Данная операция поместит объект в архив"><img src="assets/img/del.png"></a>
Как в эту ссылку на вызов модального окна поместить archive.php?id='.$row['id'].' ?

Джаваскриптом
И как вставить в запрос на добавления в архив текущую дату? DATE() не срабатывает
Потому что нужно использовать http://php.net/manual/ru/function.time.php
 
@Kolya groza morey, ты уверен, что тебе пора здесь отвечать? Я бы посоветовал пока что воздержаться от ответов.
 
@nameivan, какую информацию хранит поле с датой?
'DATE()' != DATE(), надеюсь ты понимаешь что это значит.
 
@nameivan, какую информацию хранит поле с датой?
'DATE()' != DATE(), надеюсь ты понимаешь что это значит.
C датой получилось.
Сделал поле со значением value="'.date("Y-m-d").'" ну и это значение в БД заносится на раз-два.

А что делать со ссылкой?
<a href=#win1 title="Данная операция поместит объект в архив"><img src="assets/img/del.png"></a>
Как в эту ссылку на вызов модального окна поместить archive.php?id='.$row['id'].' ?
 
@nameivan, я понятия не имею как у тебя сейчас вызов происходит, можешь попробовать написать так:
<a href="javascript:function(params)" title="Данная операция поместит объект в архив"><img src="assets/img/del.png"></a>

где function(params) - вызов твоего модального окна с параметрами.
 
@c0dex, на данный момент так
<!-- Ссылка на вызов модальных окон-->
<a href=#win1 title="Данная операция поместит объект в архив"><img src="assets/img/del.png"></a>
<!-- Модальное окно -->
<a href="#x" class="overlay" id="win1"></a>
<div class="popup">
Данное действие поместит выбранный объект в архив без возможности восстановления! </br>Вы уверены? </br></br>
&nbsp;&nbsp;
 
@nameivan, у тебя где-то должен быть вызов яваскриптом твоего оверлея/модального окна. Думай как передать туда данные.
 
@c0dex, нет а яваскрипте ничего.
Есть только это:
Код:
<!-- Ссылка на вызов модальных окон-->
<a href=#win1 title="Данная операция поместит объект в архив"><img src="assets/img/del.png"></a>

<!-- Модальное окно -->
<a href="#x" class="overlay" id="win1"></a>
<div class="popup">
Данное действие поместит выбранный объект в архив без возможности восстановления! </br>Вы уверены? </br></br>
&nbsp;&nbsp;

<form name="formConfirm" action="archive_add.php" method="post">
id <input name="id" value="'.$row['id'].'"></br>
№ в ф-ле <input name="nom_in_filial" value="'.$row['nom_in_filial'].'"></br>
TID <input name="tid" value="'.$row['tid'].'"></br>
Адрес <input name="address" value="'.$row['address'].'"></br>
<input type="submit" value="  Да  ">
</form>

Я так-то не силен в программировании, а уж яваскрипт вообще сложно для меня. Нашел в инете такую конструкцию. Но не пойму как передать через нее id записи
 
Как ни банально это звучит, чтобы что-то работало, надо написать код, описывающий нужную работу…
В случае браузера это будет яваскрипт.
Код:
document.querySelector('#win1').addEventListener('click', function(event) {
…
});
 
Как ни банально это звучит, чтобы что-то работало, надо написать код, описывающий нужную работу…
В случае браузера это будет яваскрипт.
Код:
document.querySelector('#win1').addEventListener('click', function(event) {
…
});


Спасибо большое за ответ. Но я не пойму что прописать вместо ... ?
Как сюда передать id записи?
 
Если вам надо, чтобы весь код написали за вас, пожалуйста, перейдите в раздел "Работа" и озвучьте сумму гонорара.
 
Если бы я не был ограничен в средствах, то так и сделал бы.
Но увы и ах...

пытаюсь по-другому немного сделать.
вывод из бд
Код:
while ($row=mysqli_fetch_array($result))
        {    
             echo '<form name="form" action="" method="post">
                   <tr align="center">
                     <td>'.$row['id'].'</td>
                     <td>'.$row['nom_in_filial'].'</td>
                     <td>'.$row['tid'].'</td>
                     <td>'.$row['address'].'</td>
                     <td>'.$row['serial'].'</td>
                     <td>'.$row['inv'].'</td>
                     <td><a href="#" title="Изменить"><img src="assets/img/edit.png"></a>
                         <a href="#" onclick="return del()"><img src="assets/img/del.png"></a>
                        </td>
                  </tr>
                  </form>
                  ';
       }

js в этом же файле
Код:
<script>
function del()//устройство в архив
{
if(confirm('Эта операция переместит выбранное устройство в архив безвозвратно. Вы уверены?'))
{
window.location.href = "archive_add.php"
}
}
</script>

далее переход к запросу
Код:
<?php
require_once 'connect.php';
if (isset($_POST[id])) {
    $result = mysqli_query($link,"INSERT INTO `archive` (nom_in_filial, tid, address, serial, inv)
                        VALUES ('".$_POST['nom_in_filial']."','".$_POST['tid']."','".$_POST['address']."','".$_POST['serial']."','".$_POST['inv']."')");
    //Если вставка прошла успешно
    if ($result) {
        echo "<p style=font-size: 20px>Данные успешно добавлены в БД</p>";
    } else {
        echo "<p style=font-size: 20px>Ошибка записи в БД</p>";
    }    
}
?>

но результат белая страница
 
Последнее редактирование:
error_reporting(E_ALL);
ini_set('display_errors', 1);
выдало ошибку Notice: Use of undefined constant id - assumed 'id' in Z:\home\localhost\www в строке if (isset($_POST[id]))

Забыл поставить одинарные кавычки. Но все равно белая страница
 
Последнее редактирование:
Спасибо всем, кто пытался помочь.
Сделал через
function confirmDelete() {
if (confirm("Эта операция переместит выбранный объект в архив безвозвратно. Хотите продолжить?")) {
return true;
} else {
return false;
}
}
хоть это и немного не то, что задумывал
 
Сверху