Я искал эту проблему, но все решения связаны с 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>';
Таблица:
@ m.elewa я не особо много работал с ajax.
Я действительно не понимаю, чего вы хотите достичь, не могли бы вы пояснить это немного яснее?
Ajax будет вашим лучшим вариантом.
@ maio290 Я хочу вставить некоторые данные (ip & pc username) в базу данных, когда кто-нибудь нажимает кнопку просмотра (посмотрите на изображение таблицы).
@Joseph_J вы можете привести пример ajax?
Вы хотите каждый раз вставлять значение? Тогда почему бы вам не сделать кнопку «Просмотр» кнопкой отправки формы и не отправить почтовый запрос? Это было бы довольно чисто в PHP и HTML.
без JS, возможно, вы можете создать другой файл, например view.php, и внутри него просто добавить код вставки таблицы и перенаправить на страницу заказа после вставки. ссылка на кнопку будет view.php
@ maio290 Нет, не буду каждый раз ценить. Если имя пользователя ПК отличается, я вставлю это значение. Мой код работает без нажатия кнопки просмотра (если я не использую условие if). Когда я просто просматриваю страницу таблицы, значит, она работает. Теперь я хочу, чтобы, если кто-нибудь нажал любую кнопку, вставил этот идентификатор кнопки, IP-адрес и имя пользователя ПК.
Вот ссылка, которую вы можете прочитать, которая должна вам кое-что объяснить. Прочтите это и, возможно, посмотрите какой-нибудь учебник на YouTube и поищите в SO. stackoverflow.com/questions/6009206/… Это действительно не так уж и сложно. Как только вы это сделаете, все будет в порядке.
Вот еще одна ссылка. В этом посте есть полный рабочий сценарий, который поможет вам увидеть процесс. stackoverflow.com/questions/53955326/…
Если вы избегаете Ajax, вы можете использовать переменную сеанса. При нажатии кнопки добавить к переменной сеанса.






Вы можете использовать параметр на кнопке
<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'];
}
Генри, я пробовал этот способ, но у меня это не сработало. Я хочу такое решение.
Хорошо, вы хотите, чтобы на той же странице было всплывающее окно?
Нет. Кнопка просмотра перенаправляет другую страницу.
Я отредактировал ответ, если вы укажете уникальный идентификатор для каждой ссылки, вы сможете узнать, какая кнопка была нажата.
if ($action == 'send') { } этот код не соответствует этому условию
Когда я нажимаю кнопку просмотра, он перенаправляется на http://localhost /adminorder/public/file/57451.pdf?link=send&id=57451, но почему он не передает условие if ($action == 'send') { }?
заменить ссылку на действие или действие на ссылку.
Я заменил action на link, но не работает ... я думаю, что это состояние if ($link == 'send') { } не работает. Помните: нажмите кнопку просмотра, и файл pdf будет открыт / загружен.
Хорошо, это не скрипт php открывает pdf? это было бы лучше всего, если вы хотите зарегистрировать представление.
так почему вы не используете ajax?