![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| V0fka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Привет!
Есть такая форма:
Я хочу, чтобы перед отправкой данных обработчику, в форме устанавливалось значение элемента "status", в зависимости от нажатой кнопки и чтобы потом в обработчике формы словить это значение как $_POST['status'] и что-то с ним делать. Но что-то эффекта никакого. Подскажите, пожалуйста, как это сделать? |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 5 Всего: 55 |
Значение submit тоже передается при отправке, ведь это тоже input.
Чтобы определить кнопку, не обязательно прикручивать Javascript, достаточно проверить, какое из значений передалось в скрипт:
-------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| V0fka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Arantir, спасибо за ответ, но меня все же интересует как сделать именно так, как я описал в первом посте
|
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 48 Всего: 386 |
V0fka, У input с именем status нет имени, поэтому никакого значения на сервер не передается.
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| Arantir |
|
|||
|
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 5 Всего: 55 |
V0fka, так же, как делается в других случаях взаимодействия пользователя с элементами — с помощью событий.
Вызывается при каждой попытке отправить форму (нажатие на submit, клавиша Enter при вводе в поле, вызов submit() из JS...). Функция выполняется перед отправкой данных. То есть, все изменения полей формы будут учтены. Если она вернет false, то отправка будет отменена (полезно, например, для проверки корректности данных). -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
| Amphiluke |
|
|||
|
☽ ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1253 Регистрация: 26.8.2009 Репутация: 39 Всего: 112 |
@V0fka
Вы обратили внимание, что объявленная вами функция submit не вызывается совсем? ) Дело в том, что в обработчики событий на элементах форм содержат в цепи областей видимости еще дополнительные объекты, имеющие отношение к самой форме. Так, известно, что объекты формы (HTMLFormElement) наследуют из своего прототипа нативный метод под названием submit, который занимается программной отправкой формы. Когда вы из обработчика события click на кнопке вызываете функцию submit, осуществляется просмотр цепи областей видимости в поисках этой функции. В порядке просматриваемых объектов область видимости объекта формы стоит ближе, чем глобальная область видимости, поэтому нативный метод submit находится раньше, чем ваша функция, и поиск прекращается. На самом деле, эту особенность в далеком 2008 упоминал еще Дмитрий Сошников, см. этот топик. Желательно вообще не называть элементы форм и глобальные функции именами, совпадающими с названиями нативных методов типа submit и т.д., дабы избежать впоследствии вот таких неочевидных багов. Этот ответ добавлен с нового Винграда - http://vingrad.com |
|||
|
||||
| V0fka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
Друзья, спасибо за ответы! Я на досуге покручу все это, с учетом того, что вы мне подсказали и отпишу.
|
|||
|
||||
| V0fka |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 311 Регистрация: 5.11.2006 Где: Украина Репутация: нет Всего: нет |
ksnk, понял, спасибо!
Arantir, возьму на вооружение, спасибо! Amphiluke,
Обратил... после того, как прочитал ваше сообщение В общем, всем ещё раз спасибо |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |