Dealing with Forms
One of the most powerful features of PHP is the way it handles HTML forms. The basic concept that is important to understand is that any form element will automatically be available to your PHP scripts. Please read the manual section on Variables from external sources for more information and examples on using forms with PHP. Here is an example HTML form:
Example #1 A simple HTML form
There is nothing special about this form. It is a straight HTML form with no special tags of any kind. When the user fills in this form and hits the submit button, the action.php page is called. In this file you would write something like this:
Example #2 Printing data from our form
A sample output of this script may be:
Hi Joe. You are 22 years old.
Apart from the htmlspecialchars() and (int) parts, it should be obvious what this does. htmlspecialchars() makes sure any characters that are special in html are properly encoded so people can’t inject HTML tags or Javascript into your page. For the age field, since we know it is a number, we can just convert it to an int which will automatically get rid of any stray characters. You can also have PHP do this for you automatically by using the filter extension. The $_POST[‘name’] and $_POST[‘age’] variables are automatically set for you by PHP. Earlier we used the $_SERVER superglobal; above we just introduced the $_POST superglobal which contains all POST data. Notice how the method of our form is POST. If we used the method GET then our form information would live in the $_GET superglobal instead. You may also use the $_REQUEST superglobal, if you do not care about the source of your request data. It contains the merged information of GET, POST and COOKIE data.
You can also deal with XForms input in PHP, although you will find yourself comfortable with the well supported HTML forms for quite some time. While working with XForms is not for beginners, you might be interested in them. We also have a short introduction to handling data received from XForms in our features section.
User Contributed Notes 3 notes
According to the HTTP specification, you should use the POST method when you’re using the form to change the state of something on the server end. For example, if a page has a form to allow users to add their own comments, like this page here, the form should use POST. If you click «Reload» or «Refresh» on a page that you reached through a POST, it’s almost always an error — you shouldn’t be posting the same comment twice — which is why these pages aren’t bookmarked or cached.
You should use the GET method when your form is, well, getting something off the server and not actually changing anything. For example, the form for a search engine should use GET, since searching a Web site should not be changing anything that the client might care about, and bookmarking or caching the results of a search-engine query is just as useful as bookmarking or caching a static HTML page.
Also, don’t ever use GET method in a form that capture passwords and other things that are meant to be hidden.
получить значение в PHP
Я столкнулся с ситуацией, когда мне нужно использовать простую кнопку вместо кнопки отправки. Можно ли получить значение кнопки или проверить, является ли он «isset» с PHP? Обычно с кнопками submit я бы сделал это:
Как сказал @Dagon, this.form.submit не будет работать. Атрибуты onclick будут ссылаться на window в this ключевом слове. Итак, this.form === window.form в этой ситуации. Если вы не определили где-нибудь var form , это не сработает. РЕДАКТИРОВАТЬ : Это неправильно, неважно. Смотрите комментарий Квентина.
@Dagon — this будет ссылка на кнопку, свойство form кнопки будет формой, к которой принадлежит кнопка.
@Joeytje50 Joeytje50 — Неправильно. this будет кнопка. Вы можете быть сбиты с толку onclick=»something()» и function something() < this.etc >который из-за того, как something вызывается, а не из-за onclick .
Это сработало, ребята, я просто использовал onclick, чтобы добавить значение к скрытому полю. Спасибо
2 ответа
Вы хотите $_POST[‘book_pay_on_day’] . Индекс в $_POST всегда будет именем элемента .
Только кнопка отправки, используемая для отправки формы, отправит ее значение на сервер.
Вы можете написать JavaScript, чтобы получить значение кнопки и добавить скрытый ввод в форму с помощью DOM перед вызовом метода отправки, но вам лучше отказаться от кнопки отправки, а не использовать JS вообще.
Просто удалите атрибут type ( submit — значение по умолчанию) и onclick .
Затем вам нужно будет найти правильное имя:
Я просто использовал JS . почему это плохо? Смотрите, я не могу использовать кнопку отправки, потому что есть другая кнопка (stripe.js), которая мешает другим кнопкам отправки.
Использование JavaScript для отправки формы сложнее, с большей вероятностью пойдет не так, и не будет делать то, что вы хотите.
Ещё вопросы
- 1 Я хочу, чтобы цикл открывал URL-адрес YouTube в Google Chrome через каждые 60 секунд и обновлял его, а затем закрывал
- 0 Автоматическая проблема с перенаправлением в iframe
- 1 получить размер InputStream в Java
- 1 Открыть меню с помощью кода
- 0 Проблема с вложенным ng-repeat
- 1 Проблема с подключением Bluetooth Gatt в Oneplus при выключенном устройстве
- 1 включая простой файл JavaScript в конфигурации WebPack 2
- 0 CSS / меньше файлов не загружается
- 0 Обслуживание синхронных и асинхронных задач в порядке (последовательности) с помощью $ .queue ()
- 0 не могу заставить подклассы работать должным образом
- 1 LightGBM — метрики классификации не могут обрабатывать смесь двоичных и непрерывных целей
- 1 Растровое изображение из смещения байтового массива
- 0 jQuery: передача объединенного идентификатора в ситуацию, связанную с селектором
- 1 RegExp для соответствия между двумя символами
- 0 Предназначайтесь для всех следующих детей родного брата
- 0 Проверка уникального ключа, показывающая ошибку при обновлении данных в laravel
- 0 Как получить значение sql AS в Laravel?
- 1 Как получить доступ к user_posts в Facebook Graph API
- 0 Программа перестает работать при вызове функции.
- 1 Дата не может быть разрешена для типа
- 1 Javascript отправляет строку в Python-скрипт
- 0 Скопировать конструкцию и оператор присваивания в производном классе
- 1 Meteor.js: лучший способ остановить распространение событий
- 0 JQGrid: local — jqGrid.trigger («reloadGrid») заставляет исчезать отформатированные данные
- 1 Я получаю сообщение об ошибке при создании адаптера списка
- 1 RegEx: Как захватить подраздел
- 1 javax.naming.NameNotFoundException: имя [SessionFactory] не связано в этом контексте. Невозможно найти [SessionFactory]
- 1 Как перебрать детей Firebase и добавить их ключи в список?
- 1 Привязка данных: «System.Xml.linq.XElement» не содержит свойство с именем «colorName»
- 0 Qt Creator / C ++ имеет смысл в этом случае использовать valgrind
- 1 Firebase C ++ admob crash для сборки релиза Android в cocos2dx 3.17
- 0 C ++ SWIG генерирует код в зависимости от Tcl
- 0 Ant генерирует html href список из набора файлов, добавляет тег для каждой строки
- 1 Как можно увеличить размер значков на вкладке Элементы?
- 1 InvalidOperationException при внедрении в контроллеры API с помощью Ninject и Web API 2.1
- 0 Сложность операций с массивами
- 0 Изображения появляются в Chrome, но не в IE
- 0 Laravel 5.5 Получить порядок сообщений по сумме голосов
- 0 Пагинация в Yii без базы данных
- 1 Python scipy функция не принимает глобальные переменные
- 0 Я хочу отключить кнопку Время входа в систему.
- 1 Windows Phone — привязка TextBox или другого элемента управления к параметру CommandParameter кнопки
- 1 Как я могу назвать класс из основного класса?
- 1 SoftKeyboard накладывается на EditText — ConstraintLayout
- 0 Целочисленная арифметика при переполнении
- 1 Как найти индекс подстроки, состоящей из двух частей (с неизвестным количеством пробелов) в многострочную строку в Python
- 1 Crashlytics сообщает в Fabric, но в Firebase Crashlytics нет никаких следов
- 0 Проблема с кодировкой Facebook API
- 0 Пример c ++ DirectInput извлекает немедленные данные из джойстика
- 0 Элемент Div отображается за пределами родительского элемента div
Можно определить, какая конкретно кнопка submit нажата на форме?
Определить какая кнопка нажата
Всем привет! я новичок в php и html если что не пинайте сильно) у меня есть html в котором есть.
Какая была нажата кнопка?
Доброго времени суток уважаемые форумчане. Есть скрипт, в нем много разных кнопок и пользователю.
Узнать, какая кнопка была нажата
Доброго времени суток! Тут возникла проблема и я зашел в ступор, буду благодарен за вашу помощь.
Определить, какая кнопка на веб-форме нажата
Приветствую, коллеги! Кратенько — суть проблемы: Формирую текстовый документ html-стандарта.
1 2 3 4 5 6 7 8 9 10 11 12
if (isset($_POST['no'])) echo 'Нет'; elseif (isset($_POST['yes'])) echo 'Да'; ?>
Добавлено через 1 минуту
Следует помнить, что форма также могут отправляться и ‘ом из некоторых типов полей. В этом случае, кажется, отправляется первый попавшийся submit.
tr>. td>input type="submit" Name="Cancel#1" value="Отклонить">br> input type="submit" Name="Start_Process#1" value="Начать обработку">br> input type="submit" Name="Learn#1" value="Обучается">br> input type="submit" Name="to_archive#1" value="В архив"/td>/tr>, tr>. td>input type="submit" Name="Cancel#2" value="Отклонить">br> input type="submit" Name="Start_Process#2" value="Начать обработку">br> input type="submit" Name="Learn#2" value="Обучается">br> input type="submit" Name="to_archive#2" value="В архив"/td>/tr>
и т.д., после символа «#» указывается значение поля id. Не отобраны только записи, для которых нажаты кнопки «отклонить» и «в архив».
1 2 3 4 5 6 7 8 9 10 11 12 13 14
if (isset($_POST['no']) && is_array($_POST['no']) && 1 == count($_POST['no'])) echo 'Нет', key($_POST['no']); elseif (isset($_POST['yes']) && is_array($_POST['yes']) && 1 == count($_POST['yes'])) echo 'Да', key($_POST['yes']); ?>
Сообщение от taras atavin
По-хорошему, по-настоящему для отправки форму возможно нажать только один любой submit. Так что массив нажатой кнопки должен содержать только 1 элемент с нужным ключом.
Но отправленные данные можно подделать, поэтому проверка на количество == 1 необходима.
У каждого массива внутри есть свой «указатель» на текущий элемент. Есть функции для работы с этим указателем (reset(), end(), next(), prev(), key(), current(), each()). Функция key() как раз возвращает ключ того самого текущего элемента.
Как определить какая кнопка нажата?
Не подходит потому, что у меня не 2 кнопки да и нет, у меня может быть вообще несколько сотен кнопок так как их количество зависит от количества строк которые мне придут по запросу от БД. У всех этих кнопок параметр name отличается и уникален. По сути параметр name у кнопки это поле id из строки, которая пришла из БД.
Как можно сделать так, чтобы нажав на кнопку с именем Х, это Х передалось бы в функцию вида:
function ViewDoc ($docid){ Грузим из бд документ с id $docid }
Определить какая кнопка нажата
Всем привет! я новичок в php и html если что не пинайте сильно) у меня есть html в котором есть.
Можно определить, какая конкретно кнопка submit нажата на форме?
Можно определить, какая конкретно кнопка submit нажата на форме?
Какая была нажата кнопка?
Доброго времени суток уважаемые форумчане. Есть скрипт, в нем много разных кнопок и пользователю.
Узнать, какая кнопка была нажата
Доброго времени суток! Тут возникла проблема и я зашел в ступор, буду благодарен за вашу помощь.
button name="same_name_for_all_buttons" value="unique_id">button_title/button>