Как проверить, нажата ли ссылка (a) отправить кнопку

87
8

Как я могу проверить PHP, если этот код был нажат, чтобы я мог использовать его в инструкции if?

<form id="rating" action="index.php" method="post">
<a href="#" onclick="document.getElementById('rating').submit();">Rating</a>
</form>

Поэтому, если он нажат, я хочу использовать этот запрос:

if () {
$result = mysqli_query($con,"SELECT * FROM users WHERE 'approved' = 1 ORDER BY 'rating'");
}

спросил(а) 2021-01-19T17:09:03+03:00 2 месяца, 3 недели назад
1
Решение
96

Вам нужно будет добавить в свою форму вход, например <input type="hidden" name="hidden_element" value="data"/>, иначе нет данных POST для получаемого сервера.

Затем в скрипте index.php вы можете проверить, установлен ли $_POST['hidden_element'].

Для вашего примера:

if (isset($_POST['hidden_element']) {
$result = mysqli_query($con,"SELECT * FROM users WHERE 'approved' = 1 ORDER BY 'rating'");
}

ответил(а) 2021-01-19T17:09:03+03:00 2 месяца, 3 недели назад
44

Так как ваша текущая форма не передает какие-либо данные, мне нравится техника, если в каждой форме есть несколько кнопок, каждая из которых должна иметь свое имя propper и тип submit и на php, которые вы проверяете, как if (this button was pressed then) else if (this button was pressed then) else (redirect in none or what ever you need to do when landed)

ваша форма, я изменил ahref на тип ввода ввода с именем кнопки

<form id="rating" action="index.php" method="post">
<input type="submit" name="button"
onclick="document.getElementById('rating').submit();">Rating
</form>

действие php должно выглядеть так, вы можете позже реализовать вызов ajax здесь

    if (isset($_POST['button']) === true && empty($_POST['button']) === tre) 
{
$result = mysqli_query($con,"SELECT * FROM users WHERE 'approved' = 1 ORDER BY 'rating'");
}

ответил(а) 2021-01-19T17:09:03+03:00 2 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема