Как проверить, нажата кнопка или нет в PHP?

Я искал эту проблему, но все решения связаны с javaScript. Мне нужно проверить, нажата кнопка или нет. Кнопка (<a href = "something"></a>) также является ссылкой на другую страницу. Я пробовал, но мой код работает, когда кто-нибудь просматривает эту страницу. Я хочу, чтобы кто-нибудь нажал на кнопку просмотра. Мой код:

 $for_linking = preg_replace(array('/\.[A-Z]*/i') , '', $orders->order_file);

 if (isset($_GET['link'])) {
    $link = $_GET['link'];
    if ($_SERVER['PHP_SELF'] == $for_linking){
        $ip_address = gethostbyname(trim(`hostname`));
        $pc_username = getenv("username");

        DB::table('click_counts')->insertGetId([
                 'ip' => $ip_address, 
                  'username' => $pc_username, 
                  'order_id' => $orders->id,
         ]);
    }
 }

 return '<a href = "' . url("file").'/'.$orders->order_file.'/?link='.$for_linking.'" class = "btn btn-xs btn-primary">View</a>'; 

Я использовал datatable, чтобы показать данные. Если я не использую условие if, данные вставляются при просмотре страницы. Но я хочу, чтобы при нажатии на View данные были вставлены. Так я могу использовать здесь условие if?

Ниже приведен код, работающий только для просмотра страницы:

    $ip_address = gethostbyname(trim(`hostname`));
    $pc_username = getenv("username");

    DB::table('click_counts')->insertGetId([
             'ip' => $ip_address, 
              'username' => $pc_username, 
              'order_id' => $orders->id,
     ]);

    return '<a href = "' . url("file").'/'.$orders->order_file.'" class = "btn btn-xs btn-primary">View</a>'; 

Таблица:

Как проверить, нажата кнопка или нет в PHP?

так почему вы не используете ajax?

m.elewa 31.12.2018 09:12

@ m.elewa я не особо много работал с ajax.

Chonchol Mahmud 31.12.2018 09:15

Я действительно не понимаю, чего вы хотите достичь, не могли бы вы пояснить это немного яснее?

maio290 31.12.2018 09:21

Ajax будет вашим лучшим вариантом.

Joseph_J 31.12.2018 09:22

@ maio290 Я хочу вставить некоторые данные (ip & pc username) в базу данных, когда кто-нибудь нажимает кнопку просмотра (посмотрите на изображение таблицы).

Chonchol Mahmud 31.12.2018 09:32

@Joseph_J вы можете привести пример ajax?

Chonchol Mahmud 31.12.2018 09:34

Вы хотите каждый раз вставлять значение? Тогда почему бы вам не сделать кнопку «Просмотр» кнопкой отправки формы и не отправить почтовый запрос? Это было бы довольно чисто в PHP и HTML.

maio290 31.12.2018 09:34

без JS, возможно, вы можете создать другой файл, например view.php, и внутри него просто добавить код вставки таблицы и перенаправить на страницу заказа после вставки. ссылка на кнопку будет view.php

Naveen 31.12.2018 09:36

@ maio290 Нет, не буду каждый раз ценить. Если имя пользователя ПК отличается, я вставлю это значение. Мой код работает без нажатия кнопки просмотра (если я не использую условие if). Когда я просто просматриваю страницу таблицы, значит, она работает. Теперь я хочу, чтобы, если кто-нибудь нажал любую кнопку, вставил этот идентификатор кнопки, IP-адрес и имя пользователя ПК.

Chonchol Mahmud 31.12.2018 09:43

Вот ссылка, которую вы можете прочитать, которая должна вам кое-что объяснить. Прочтите это и, возможно, посмотрите какой-нибудь учебник на YouTube и поищите в SO. stackoverflow.com/questions/6009206/… Это действительно не так уж и сложно. Как только вы это сделаете, все будет в порядке.

Joseph_J 31.12.2018 09:56

Вот еще одна ссылка. В этом посте есть полный рабочий сценарий, который поможет вам увидеть процесс. stackoverflow.com/questions/53955326/…

Joseph_J 31.12.2018 10:02

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

Rotimi 31.12.2018 10:06
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
12
168
1

Ответы 1

Вы можете использовать параметр на кнопке

<a href = "something?action=send&id=XX"></a>

В сценарии php на странице чего-то вы используете $ _GET для действия.

$action = '';
if (isset($_GET['action'])) {
    $action = $_GET['action'];
}
if ($action == 'send') {
    // the send buttons was clicked
    $id = $_GET['id'];
}

Генри, я пробовал этот способ, но у меня это не сработало. Я хочу такое решение.

Chonchol Mahmud 31.12.2018 10:46

Хорошо, вы хотите, чтобы на той же странице было всплывающее окно?

Henry 31.12.2018 10:49

Нет. Кнопка просмотра перенаправляет другую страницу.

Chonchol Mahmud 31.12.2018 10:55

Я отредактировал ответ, если вы укажете уникальный идентификатор для каждой ссылки, вы сможете узнать, какая кнопка была нажата.

Henry 31.12.2018 11:00
if ($action == 'send') { } этот код не соответствует этому условию
Chonchol Mahmud 31.12.2018 11:10

Когда я нажимаю кнопку просмотра, он перенаправляется на http://localhost /adminorder/public/file/57451.pdf?link=send&id=57451, но почему он не передает условие if ($action == 'send') { }?

Chonchol Mahmud 31.12.2018 11:13

заменить ссылку на действие или действие на ссылку.

Henry 31.12.2018 11:17

Я заменил action на link, но не работает ... я думаю, что это состояние if ($link == 'send') { } не работает. Помните: нажмите кнопку просмотра, и файл pdf будет открыт / загружен.

Chonchol Mahmud 31.12.2018 11:22

Хорошо, это не скрипт php открывает pdf? это было бы лучше всего, если вы хотите зарегистрировать представление.

Henry 31.12.2018 17:13

Другие вопросы по теме

Условная проверка с помощью переключателя, требуется другой ввод, если значение переключателя - да, иначе допускает значение NULL
Я установил elasticsearch, но как я могу искать данные из таблицы MySQL по нескольким полям ввода из нескольких столбцов таблицы
Агрегированный запрос для подсчета для сводной таблицы без использования соединения
Bonecms валидатор laravel-captcha для входа в систему с несколькими авторизациями
«stream_socket_enable_crypto (): сертификат узла CN =` gains.nanosupercloud.com 'не соответствует ожидаемому CN = `smtp.sendgrid.net'» на общем хостинге
Laravel добавляет текст в переменную в контроллере
PHP, JOIN и Laravel - Как разделять массивы при объединении таблицы
"message": "Вызов неопределенного метода Tymon \\ JWTAuth \\ Exceptions \\ TokenInvalidException :: getStatusCode ()
Как создать индивидуальный вход / регистрацию в Laravel 5.6
В подсказке Google Chart geochart Tooltip не отображаются все значения, а цвет маркера изменился