Я пытался сохранить входные данные в поле формы html после отправки. поэтому, я использовал как
<input type="text" name="myField" value="<?php echo isset($_POST['myField']) ? $_POST['myField'] : 'column_name' ?>" />
его работа хорошо, если тип ввода – text
. он не работает с <textarea>
и <select>
.
Для текстового поля:
<textarea><?php echo isset($_POST['myField']) ? $_POST['myField'] : 'column_name' ?></textarea>
Для выбора:
<select> <option value='xx' <?php echo isset($_POST['myField'])&&$_POST['myField']=='xx'?'selected="selected"':''?>>XX</option> <option value='yy' <?php echo isset($_POST['myField'])&&$_POST['myField']=='yy'?'selected="selected"':''?>>YY</option> </select>
Если вы используете jQuery, я предпочитаю заполнять выбор с помощью javascript:
<select name='myField'> <option value='xx'>XX</option> <option value='yy'>YY</option> </select> <?php if(isset($_POST['myField'])):?> <script type='text/javascript'> $("select[name=myField] option[value='<?php echo $_POST['myField']';?>']").attr("selected","selected"); </script> <?php endif; ?>
<textarea>
s не имеют атрибута value
. У них есть тело:
<textarea name="myField2"><?php echo isset($_POST['myField2']) ? $_POST['myField2'] : 'column_name' ?></textarea>
Аналогично, <select>
s не имеют атрибута value
. Значение a <select>
определяется содержимым <option>
s, которое имеет selected
атрибут . Это одно упражнение для читателя. Подсказка: вам нужно выполнить итерацию по <select>
' <option>
s и условно добавить selected
атрибут к одному или нескольким параметрам <option>
.