Подтвердить что ты не робот

Элемент запрещенной формы не отправляется

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

$form -> getElement("elementname") -> setAttrib("disable", true);

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

Что происходит? Я делаю что-то неправильно? Как это решить?

4b9b3361

Ответ 1

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

То, что вы делаете, на самом деле является нулевой практикой, независимо от того, что вы делаете с этой формой, так как она будет доступна для редактирования конечным пользователем. Вы просто не можете доверять вводу формы - даже скрытые поля - чтобы не подделываться.

Лучше всего просто отобразить информацию пользователю и загрузить ее снова после отправки формы; в худшем случае сохраните его в сеансе.

Ответ 2

Это работало как прелесть для меня. Это предотвращает редактирование элемента и передает его через сообщение.

$this->username->setAttrib('readonly', 'true');

Ответ 3

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

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