Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
4 / 3 / 2
Регистрация: 01.08.2015
Сообщений: 72
1

Отлов нажатия кнопки

17.02.2019, 13:00. Показов 817. Ответов 10
Метки нет (Все метки)

Приветствую, идея такая.
Из базы данных запрашивается содержимое таблицы и выводится на экран.
Для каждой строчки создается кнопка с именем "del"+$id (id берется из таблицы).
Если пользователь нажал на какую либо кнопку, то соответствующая строка удаляется из базы.
Я сумел организовать все кроме отлова нажатия на кнопку (Неожиданно).
Подскажите как это сделать.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.02.2019, 13:00
Ответы с готовыми решениями:

Отлов нажатия кнопки submit и блокировка последующего нажатия
Привет всем! Нужен код, который способствует блокировке нажатия кнопки после одного нажатия на...

Обработка нажатия кнопки
Уже 2 часа пытаюсь настроить эту нехитрую операцию, и вроде примеров сети много. Но нажатие кнопки...

Обработка нажатия кнопки
Добрый день! Уже довольно долго не могу разобраться со следующей задачей: У меня есть html код...

Отладка нажатия кнопки
Вопрос самый простой, но что то я совсем не найду на него ответ: как пошагово отлаживать функции,...

10
1803 / 1111 / 404
Регистрация: 13.06.2013
Сообщений: 3,756
17.02.2019, 18:14 2
Варианты:
1) Сделать из кнопки ссылку, при переходе удаляете запись и редирект на табличку. Плохой вариант, но легко делается.
HTML5
1
<a href="/record/delete?id=1">click</a>
2) Каждую кнопку заворачивается в форму. В отличии от предыдущего варианта здесь можно использовать POST запрос, что более надежно.
HTML5
1
2
3
4
<form action="/record/delete" method="post">
    <input type="hidden" name="id" value="1">
    <input type="submit" value="click">
</form
3) Через JS + ajax. Ловите событие клик и делаете ajax запрос на сервер, т.е. без перезагрузки страницы, потом обновляете таблицу, тоже через ajax.

Цитата Сообщение от vidik Посмотреть сообщение
Для каждой строчки создается кнопка с именем "del"+$id (id берется из таблицы).
И зачем?
0
767 / 323 / 157
Регистрация: 26.05.2016
Сообщений: 2,127
17.02.2019, 21:25 3
Цитата Сообщение от tarasalk Посмотреть сообщение
И зачем?
для надежности

Добавлено через 1 минуту
Цитата Сообщение от vidik Посмотреть сообщение
Я сумел организовать все кроме отлова нажатия на кнопку (Неожиданно).

Не по теме:

что значит неожиданно? неожиданно сумели организовать :)




По теме
Id же получайте вот по нему и удаляйте)) что там трудного?

Добавлено через 1 минуту
незабываем что имя кнопки должна быть массивом name='button[]'
0
30 / 45 / 19
Регистрация: 18.07.2018
Сообщений: 578
17.02.2019, 21:43 4
PHP
1
2
3
4
5
6
<?php
if (filter_has_var(0, 'del')) // в этом месте запрос вида ... delete from table where column = $_POST['del'] ... 
?>
<form method="post">
    <button name="del" value='<?= $id ?>">Удалить</button>    
</form>
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,574
17.02.2019, 22:23 5
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
        <script>
            $(function(){
                $('.del').click(function(){
                    var that = $(this);
                    var id  = that.data('id');
                    
                    $.ajax({
                        url: 'file.php',
                        data: 'id =' +id, // передаем идентификатор по которому удалить запись
                        type: 'post',
                        dataType: 'json',
                        success: function(response){
                            // если ответ с сервера об удачном удалении, удаляем запись из таблицы
                            if(response['success']){
                                that.parent().parent().remove();
                            }
                        }
                    });
                });
            });
 
        </script>
        <table border="1">
            <tr>
                <td>Какая-то информация</td>
                <td><button type="button" data-id="1" class="del">Удалить</button></td>
            </tr>
            <tr>
                <td>Какая-то информация</td>
                <td><button type="button" data-id="2" class="del">Удалить</button></td>
            </tr>
        </table>
обработчик
PHP
1
2
3
4
5
6
7
8
9
10
<?php
// удаляем запись
 
// формируме ответ
$response = [
    'success' => 1,
];
 
// отдаем ответ
echo json_encode($response);
0
30 / 45 / 19
Регистрация: 18.07.2018
Сообщений: 578
17.02.2019, 22:29 6
del
0
4 / 3 / 2
Регистрация: 01.08.2015
Сообщений: 72
18.02.2019, 06:15  [ТС] 7
Я немного не понимаю, как сделать так, чтобы при нажатии на любую кнопку с именем del+$id запускалась функция, в неё подавалось имя кнопки?
Это не обязательно должно быть имя, это может быть что угодно, откуда можно вытащить ID для формирования запроса.
Я задаю имя таким образом, так как на странице будут другие кнопки. К примеру "изменить" .
Так же мне бы не хотелось использовать ajax, да и вообще js, если это возможно.
0
582 / 436 / 156
Регистрация: 26.05.2016
Сообщений: 2,468
18.02.2019, 07:36 8
vidik, например id, вот так:
HTML5
1
2
3
4
<button id = "buttonOne">Click</button>
<button id = "buttonTwo">Click</button>
<button id = "buttonThree">Click</button>
<script type="text/javascript" src = "117.js"></script>
Javascript
1
2
3
4
5
6
7
8
9
document.addEventListener('DOMContentLoaded', docReady);
function docReady()
{
    document.addEventListener('click', getInfoFromClickedElement);
}
function getInfoFromClickedElement(e)
{
    console.log(e.target.id);
}
Вы можете у объекта "событие", в данном случае обозначил e, подсмотреть его свойства.
0
165 / 89 / 38
Регистрация: 29.06.2015
Сообщений: 1,070
18.02.2019, 07:37 9
Цитата Сообщение от tarasalk Посмотреть сообщение
Сделать из кнопки ссылку, при переходе удаляете запись и редирект на табличку. Плохой вариант, но легко делается.
Хороший вариант. Я бы даже сказал самый тру вариант, без аджаксов и прочих финтов ушами.

Цитата Сообщение от tarasalk Посмотреть сообщение
Каждую кнопку заворачивается в форму.
Не надо так.

Цитата Сообщение от tarasalk Посмотреть сообщение
POST запрос, что более надежно
Get и post запросы с точки зрения стека tcp/ip есть почти одно и тоже (если не одно и тоже - что уже холивар).
0
1803 / 1111 / 404
Регистрация: 13.06.2013
Сообщений: 3,756
18.02.2019, 14:46 10
Цитата Сообщение от useruser Посмотреть сообщение
Get и post запросы с точки зрения стека tcp/ip есть почти одно и тоже
Может быть, а вот с точки зрения HTTP это далеко не одно и тоже. GET предназначен для получения данных, POST для изменения.
Холивар разводить не буду, гугл в помощь.
0
1931 / 1522 / 703
Регистрация: 17.11.2012
Сообщений: 6,574
18.02.2019, 22:19 11
Цитата Сообщение от useruser Посмотреть сообщение
без аджаксов и прочих финтов ушами.
а чем ajax не нравится?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.02.2019, 22:19

Обработка нажатия кнопки
Добрый день! Скажите пожалуйста, как можно сделать, чтобы когда кто то голосует в рейтинге (моем) с...

Обработка нажатия кнопки
Здравствуйте. Имеется HTML код самой кнопки: &lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;meta...

Обработка нажатия кнопки
Как сделать чтобы при нажатии на кнопку, выполнялось действие?

Отлов нажатия кнопки
Интересует такой вопрос. На устройстве под win CE 6.0 есть кнопка, и нужно отлавливать момент,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru