2012-06-29 2 views
2

Я нашел этот ответ на этот вопрос https://stackoverflow.com/a/7244888/1473523, но в моей ситуации я не могу поместить скрытое поле, так что нет способа сделать сообщение отключенного поля выбора в PHP?Опубликовать отключенное поле выбора PHP

+1

Вы можете включить его используя javascript перед отправкой – flowfree

+1

использовать readonly вместо отключенного, как говорят ответы? – allen213

+0

Я не хочу включать его, потому что он должен быть пустым, но я хочу, чтобы сервер узнал его, когда я его отправляю и отправляю даже его нуль, но иногда он может быть включен, а затем я не хочу отправлять форму, если значение is null – itsme

ответ

9

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

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

Ваши варианты - как-то включить поле перед отправкой формы или добавить скрытое поле.

1

Попробуйте удалить атрибут, отключенный с помощью javascript, перед отправкой формы.

0

С вопросом, что вы в курсе, это то, как создается отключить поле:

<select class="txtbx1" name="country_disabled" disabled="disabled">

Вы можете сделать это скрытый, а также:

<select class="txtbx1" name="country_disabled" type="hidden"> 
0

Не полагайтесь на клиент для таких вещей. Они могут отключить JS или обработать запрос с помощью инструментов разработчика из браузера или инструмента, такого как Fiddler.

Если есть ценность, которую вы ожидаете, но пользователю не разрешается изменять, держите ее на стороне сервера. Например, используйте сеансы.

0

Существует no way, чтобы опубликовать отключенное поле, если бы это было не бесчувственное.

Таким образом, либо вы определяете значение по умолчанию на стороне сервера, когда никакое значение не представлено, либо вы используете <input type="hidden" name="same_as_select" value="default" /> для предоставления значения по умолчанию, а затем, если ваша форма включена, она всегда будет переопределять значение по умолчанию.

0

Нет, нет возможности даже, но вы можете проверить, если это поле пустым, чтобы предотвратить неопределенное указательный уведомление:

if(empty($_POST['select_name'])){ //or !isset() 
    $disabled_select = 0; //or its default value 
} else { 
    $disabled_select = $_POST['select_name']; 
} 

Я предпочитаю использовать одну строку:

$disabled_select = empty($_POST['select_name']) ? 0 : $_POST['select_name']; 
Смежные вопросы