Как проверить, нажата ли кнопка ввода в PHP? - PullRequest
4 голосов
/ 01 февраля 2012

Функция isset () может использоваться для проверки, нажата ли тип ввода submit, но есть ли способ проверить, нажата ли кнопка типа ввода?

В моем коде кнопка делаетничего, кроме вызова функции в событии .Onclick (), которая затем обновляет страницу и делает запись базы данных в PHP ... и я хочу, чтобы она делала запись только после нажатия кнопки ... и я не могу использоватьтип отправки по другим причинам ... следующий код:

function send()
{
    var events = document.getElementById("event").value;
    location.href = "calm.php?day=" + xx + "&month=" + yy + "&year=" +
                    zz + "&events=" + events;
}

<input name="Button"
       type="button"
       id="submit"
       onclick="send(this.form)"
       value="Button" />

<?php
    session_start();
    include_once "connect_to_mysql.php";
    $day = $_GET['day'];
    $month = $_GET['month'];
    $year = $_GET['year'];
    $events = $_GET['events'];
    $userid = $_SESSION['id'];
    if (isset($_POST['button']))
    {
        $sql = mysql_query("INSERT INTO events (userid,month,day,year,events)
                            VALUES('$userid','$month','$day', '$year','$events')")
               or die (mysql_error());
    }
?>

Ответы [ 5 ]

9 голосов
/ 01 февраля 2012

isset($_POST['Button']) вы только что пропустили столицу B. Вы должны соответствовать ему так же, как атрибут name ввода.

1 голос
/ 01 февраля 2012

вам нужно сделать это с помощью ajax. поэтому, когда пользователь нажимает на эту кнопку, страница не обновляется. Должна быть страница за видимым, которая делает это для пользователя. всякий раз, когда он нажимает кнопку, он получает доступ к этой странице и загружает любые данные, которые вы хотите ...

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

0 голосов
/ 10 марта 2014

Функция isset () не работает с кнопкой ввода = кнопка. поэтому либо мы должны использовать тип ввода = submit вместо кнопки, либо какой-то скрытый тип, если мы все еще хотим использовать кнопку.

0 голосов
/ 01 февраля 2012

'locrizak' ответил правильно.Ваше имя кнопки - «Кнопка», и вы пытались проверить наличие щелчка на «кнопке», оба они разные.В этом случае, если вы не уверены в том, что не так, вы можете распечатать весь массив POST, используя

print_r($_POST)

. Это отобразит все отправленные значения из формы, включая кнопку

Использование isset () - этоправильный метод проверки наличия элемента формы

Использование

if(isset($_POST['Button'])){
  //code block for insertion,validation etc //
}
0 голосов
/ 01 февраля 2012

В нашем примере, самый простой подход - добавить дополнительную переменную к параметрам, переданным в & button_press = true или что-то в этом роде, и тогда вы узнаете, что кнопка была нажата при получении информации

...