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

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>
При нажатии Нет окно просто закрывается и мы остаемся на текущей странице. Но как организовать выполнение запроса на перемещение данных из одной таблицы в другую при нажатии Да и после выполнения запроса вывод сообщения об успешной операции? Желательно при этом вернуть пользователя на прежнюю страницу
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
при нажатии Да
обычно команда (в твоем случае удалить) это POST запрос, те нужна форма,
Желательно при этом вернуть пользователя на прежнюю страницу
после обработки (удаления) сервер возвращает header перенаправление на нужную страничку
после выполнения запроса вывод сообщения
часто используется решение под кодовым именем flash-message основное на session, к примеру https://github.com/tamtamchik/simple-flash
 

nameivan

Новичок
Ок. По первому пункту все понятно. Сделал форму. Пока все поля видимые, но позже спрячу их.
Но затык тут
<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']."')");
 

Kolya groza morey

Новичок
<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
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@Kolya groza morey, ты уверен, что тебе пора здесь отвечать? Я бы посоветовал пока что воздержаться от ответов.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@nameivan, какую информацию хранит поле с датой?
'DATE()' != DATE(), надеюсь ты понимаешь что это значит.
 

nameivan

Новичок
@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'].' ?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@nameivan, я понятия не имею как у тебя сейчас вызов происходит, можешь попробовать написать так:
<a href="javascript:function(params)" title="Данная операция поместит объект в архив"><img src="assets/img/del.png"></a>

где function(params) - вызов твоего модального окна с параметрами.
 

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;
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
@nameivan, у тебя где-то должен быть вызов яваскриптом твоего оверлея/модального окна. Думай как передать туда данные.
 

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 записи
 

AnrDaemon

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

nameivan

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

Спасибо большое за ответ. Но я не пойму что прописать вместо ... ?
Как сюда передать id записи?
 

AnrDaemon

Продвинутый новичок
Если вам надо, чтобы весь код написали за вас, пожалуйста, перейдите в раздел "Работа" и озвучьте сумму гонорара.
 

nameivan

Новичок
Если бы я не был ограничен в средствах, то так и сделал бы.
Но увы и ах...

пытаюсь по-другому немного сделать.
вывод из бд
Код:
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>";
    }    
}
?>
но результат белая страница
 
Последнее редактирование:

nameivan

Новичок
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]))

Забыл поставить одинарные кавычки. Но все равно белая страница
 
Последнее редактирование:

nameivan

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