php: читать атрибут из элемента формы - PullRequest
3 голосов
/ 23 ноября 2010

возможно ли прочитать атрибут из элемента формы?

Я получил это:

<input class="number required" min="1250" max="999999999" id="insert_counter1" name="my_counter" value="" type="text">

После отправки я могу получить доступ к значению.Но есть ли способ получить другие атрибуты, такие как "min" или "max"?

Прямо сейчас у меня есть скрытое поле ввода только для чтения с именем my_counter_min, где хранится атрибут "min".Я не знаю, является ли это обходным процессом или это единственный способ сделать это.

Br.Андерс

ОБНОВЛЕНО на основе ответов ниже:

Спасибо за хорошую обратную связь.Пока я читаю ответы, есть три хороших решения с некоторыми плюсами и минусами.

  • Сохранение значения в типе ввода = скрыто .Легко сделать, но можно изменить с помощью
  • Использовать парсер .Занимает больше времени на кодирование, но исходное значение будет получено через новый веб-запрос.Так что нет подделки
  • Сохранить значение в БД .Если форма связана с конкретным rcord в БД, то сохранение дополнительных значений может иметь смысл и не потребует больших усилий при кодировании, если другие значения уже должны входить и выходить из БД (просто добавьте значение).

Я получил три разных ответа на мой вопрос.Самый быстрый ответ помечен как правильный, хотя существует более одного решения.

BR.Андерс

Ответы [ 4 ]

4 голосов
/ 23 ноября 2010

Нет.Только имя и значение дойдут до сервера, поэтому вам потребуется обходной путь (например, тот, который вы описали).

3 голосов
/ 23 ноября 2010

Они не передаются, но вы можете загрузить страницу с помощью HTML-парсера и извлечь значения.

Большой вопрос: почему вы хотите это сделать?Если вы хотите использовать мин / макс, чтобы убедиться, что переданное значение находится в этом диапазоне, вы должны жестко закодировать эти значения на стороне сервера, вместо того, чтобы каким-либо образом получать их от клиентской стороны.бессмысленно, потому что это может быть легко подделано.Вытащив их с помощью парсера, вы убедитесь, что они не подделаны, но добавляет накладные расходы на второй запрос.

3 голосов
/ 23 ноября 2010

Я не знаю, является ли это обходным процессом или это единственный способ сделать это.

Это единственный хороший способ сделать это.Другие атрибуты элементов формы не передаются в запросе.

2 голосов
/ 23 ноября 2010

Интересно. Однажды у меня была такая же проблема, и я решил ее так же, как и ты. На самом деле никогда не оглядывался назад на проблему.

Одна вещь, о которой я могу подумать, это сохранение значений в базе данных, поэтому вы можете: 1. Используйте их как входную переменную. 2. Получите доступ к нему в любое время.

Ps: Первоначально это был комментарий, но вы видите, что вы принимаете альтернативы.

...