Как отследить нажатие на кнопку php?
В первую очередь, Вы должны понимать, что переменные в PHP будут переинициализированы, при каждом новом запуске скрипта и то, что все переменные и значения в PHP-скрипте существуют только в тот момент, пока этот самый скрипт выполняется.
Если Вам нужно хранить значение переменной между запросами — для этого можно использовать например сессию или базу данных, или хранилище или.
С помощью отправки формы на сервер, либо с помощью AJAX-запроса, это наиболее распространённые способы.
FaFuChEG, уточните, в каком именно месте у Вас сложности или что именно нужно пояснить, т.к. я видимо не до конца понимаю Ваш вопрос. Кнопка, по умолчанию — отправляет на сервер форму (тег ), в которой она (кнопка) располагается. В этой форме соотв. Вы отправлять различные поля, значения которых в последствии можно получить в переменных $_GET и $_POST.
FaFuChEG, можете, только между вашими 1 и 2 произойдет еще много всего.
Да и перед 1 (эта кнопка не сама появится же).
А также вы наверняка захотите что-то сделать и после 2.
Кратко — нет. Добро пожаловать в мир скриптовых языков.
Все работает так:
1. Пользователь вбивает в адресной строке адрес вашего сайта
2. Сервер подготавливает ответ (html). В этот момент инициализируются перемнные, им задаются значения, и т.д.
3. Сервер передает заканчивает свою работу. Все перемнные удаляются из памяти.
4. Клиент получает данные от сервера.
5. Пользователь видит html, подготовленный сервером.
Последующие действия пользователя могут инициализировать новый запрос на сервер, но тогда ВСЕ пермеменные будут инициализовваться заново.
Никак. PHP работает на сервере, и не видит что там клиент нажимает.
Браузер должен отправить запрос на сервер, обычно с POST или GET запросом (есть и другие варианты, но эти два чаще всего).
Открой учебник по HTML и почитай как устроены ссылки и формы. Или ajax.
Посерчи AJAX.
Выглядеть решение будет примерно так — при клике на кнопку идет AJAX-запрос на сервер, в data отправляешь кнопку по которой кликнул, на сервере обрабатываешь и возвращаешь в браузер.
На принимающей стороне проверяете эту переменную в зависимости от нее выполняете нужный блок $current.
$current = $POST[name]; (или GET)
Только вместо $current==1 впишите $current==first и т. п.
Как-то так. Давно не кодил. Должно работать, надо проверить.
К Вашему ответу добавил бы ещё что нужно тег form добавить потому что его сейчас нет
А ещё у Вас ошибка не $POST а $_POST поправьте пожалуйста.
Видя отсутствие тега
Войдите, чтобы написать ответ
Где здесь ошибка?
Проверить, нажата ли кнопка
Как в PHP коде определить, была ли отправлена информация из формы или нет и в зависимости от этого записать в какую-нибудь вспомогательную переменную результат true/false?
form action="php/is-text-sent.php" method="POST"> p> Enter text: input type="text" name="text"> input type="submit" value="Submit" name="button"> /p> /form>
$send = $_POST['button']; $date = $_POST['text']; // и вот что здесь надо сделать ?>
Проверить нажата ли кнопка
Здравствуйте! Создаю интернет-магазин (в институте задали). Столкнулась с такой проблемой, что не.
Какая была нажата кнопка?
Доброго времени суток уважаемые форумчане. Есть скрипт, в нем много разных кнопок и пользователю.
Определить какая кнопка нажата
Всем привет! я новичок в php и html если что не пинайте сильно) у меня есть html в котором есть.
Узнать, какая кнопка была нажата
Доброго времени суток! Тут возникла проблема и я зашел в ступор, буду благодарен за вашу помощь.
//$send = $_POST['button']; $date = $_POST['text']; // и вот что здесь надо сделать if(isset($_POST['button'])) {echo 'Кнопка была нажата'; $bam=TRUE;} else {echo 'Кнопка пока не нажата'; $bam=FALSE;} ?>
Как определить какая кнопка нажата?
Такой вариант НЕ ПОДХОДИТ! <?php if (isset($_POST)) echo ‘Нет’; elseif (isset($_POST)).
Можно определить, какая конкретно кнопка submit нажата на форме?
Можно определить, какая конкретно кнопка submit нажата на форме?
Как узнать кнопка какой формы была нажата, если на странице имеется несколько форм, а обработчик один?
Здравствуйте! Подскажите пожалуйста, как узнать кнопка какой из форм была нажата, чтоб можно было.
Проверить, нажата ли кнопка
Добрый день, как сделать проверку? Если активизирована кнопка, то выполняется запрос иначе выдает.
How to Check if the Submit Button Is Clicked in PHP
In this article, we will go over how you can check to see whether the submit button of a form has been clicked or not using PHP.
This is very useful and can be used often with form data in PHP, because when the web browser first loads a web form, PHP does not know whether the form, initially, has been clicked or not. It doesn’t know whether the user has entered data and submitted or not. This means that if you have a form field and it does an if-else statement, it may run one of the statements initially, which you probably don’t want. PHP cannot distinguished if a form has already been executed or it hasn’t, when initially loaded. So checking to see if the submit button has been clicked is important and useful in forms involving PHP.
Below is an typical form field that you would find on the web:
Result
Above is a form which asks a user to enter his or her name into the form field. If the user enters in characters into this field and clicks submit, then the form will tell the user the name which s/he entered. If the user leaves the field blank and clicks ‘Submit’, then the form will tell the user that s/he did not enter a name and that s/he must do so.
HTML Code
The HTML code of this form field is:
The most important part of this form field in HTML is the «name» of the submit button, which in this case is called «submitbutton». This will be important because our PHP code needs to extract information from this submit button, which is how it determines whether it has been clicked or not. PHP code knows which submit button to refer to by the «name» attribute of the submit button.
PHP code
The PHP code used to determine whether the submit button has been clicked is:
With the PHP Code, first we have to extract the data from the submit button before we can process it to check whether it is clicked or not. We do this by the line:
$submitbutton= $_POST[‘submitbutton’];
Here, we created a PHP variable, $submitbutton. Using the superglobal $_POST array, we extract the value of the submit button with the form name ‘submitbutton’, and assign it to the PHP variable, $submitbutton.
Now that we have the value extracted, we can do an if statement to see whether it is clicked or not. We do this by the following line:
if ($submitbutton) //This statement to be executed
>
else
//This statement to be executed
>
How we check to see if the submit button is clicked is with a simple if statement. If the $submitbutton is clicked, the function will return true. If the $submitbutton is not clicked, the function will return false. This simple if statement checks the boolean value of the variable.
Based on this, you can make any function or statement be executed.
In our example, if the submit button has been clicked, the form tells the user the name s/he has entered. If it hasn’t, then the form tells the user to enter a name.
If we didn’t do validation to check whether the submit button was clicked, then initially when the form is first loaded, since the field is empty (not set), the form would automatically tell the user that s/he must enter a name. This is because PHP doesn’t know at initial loading whether the user has interacted with the form already or not. The validation to check whether the submit button has been clicked demonstrates this.
How can I tell which button was clicked in a PHP form submit?
I have several buttons on my page, but I’m not sure how to tell which one was clicked. Here’s the markup for my two buttons:
This answer seem to have a big error. It should use name =»btnSubmit» not and name =»btnDelete» not All those people that upvoted this did they really test it?
4 Answers 4
The PHP code to use would look like:
if ($_SERVER['REQUEST_METHOD'] === 'POST') < // Something posted if (isset($_POST['btnDelete'])) < // btnDelete >else < // Assume btnSubmit >>
You should always assume or default to the first submit button to appear in the form HTML source code. In practice, the various browsers reliably send the name/value of a submit button with the post data when:
- The user literally clicks the submit button with the mouse or pointing device
- Or there is focus on the submit button (they tabbed to it), and then the Enter key is pressed.
Other ways to submit a form exist, and some browsers/versions decide not to send the name/value of any submit buttons in some of these situations. For example, many users submit forms by pressing the Enter key when the cursor/focus is on a text field. Forms can also be submitted via JavaScript, as well as some more obscure methods.
It’s important to pay attention to this detail, otherwise you can really frustrate your users when they submit a form, yet «nothing happens» and their data is lost, because your code failed to detect a form submission, because you did not anticipate the fact that the name/value of a submit button may not be sent with the post data.
Also, the above advice should be used for forms with a single submit button too because you should always assume a default submit button.
I’m aware that the Internet is filled with tons of form-handler tutorials, and almost of all them do nothing more than check for the name and value of a submit button. But, they’re just plain wrong!
if ($_SERVER['REQUEST_METHOD'] === 'POST') < // Something posted if (isset($_POST['btnSubmit3'])) < // btnSubmit3 >else if (isset($_POST['btnSubmit2'])) < // btnSubmit2 >else < // Assume btnSubmit1 >>
if ($_SERVER['REQUEST_METHOD'] === 'POST') < // Something posted // Assume btnSubmit1 >
Notice that in all cases, you can and should assume the first submit button to appear in the form’s html was the button that was clicked, unless you can detect a different button. Only the buttons which appear later in the form should be explicitly tested for.
In other words, the first button is always assumed to be the form submitter, unless you can detect a different button as the submitter.
What about
The reason we can use $_SERVER[‘REQUEST_METHOD’] === ‘POST’ to detect a form POST is because POST is deliberate, while GET is not — GET is the default. So, using $_SERVER[‘REQUEST_METHOD’] === ‘GET’ would be unreliable, because someone may just be loading the page/url, and not actually submitting a form, as the browser will use GET in either scenario because it is the default request method.
There’s a variety of different ways to reliably detect a GET form submission, but a simple and reliable method is to just add to the form, and then instead of using if ($_SERVER[‘REQUEST_METHOD’] === ‘POST’) do if (isset($_GET[‘submitted’])) to detect form submission. The code detecting which button was pressed stays the same as it was for POST.
Browser Support:
This strategy has excellent browser support and does not rely on any browser specific behavior, nor any newer html5 features. It should work properly with both modern and ancient browsers, even from the early 2000’s. Also, the php code logic is easily adapted to other languages because it does not rely on any tricky or php-specific behaviors.