У меня есть:
<select name="topic" style="margin-bottom:3px;"> <option>General Question</option> <option>Company Information</option> <option>Customer Issue</option> <option>Supplier Issue</option> <option>Request For Quote</option> <option>Other</option> </select>
для падения. И когда форма отправлена, она переходит на страницу проверки. Если у него есть ошибки, форма сохраняет исходный контент, который пользователь вводит. Я работаю над всеми полями ввода и текстовой областью, но как я могу сделать это с раскрывающимся списком?
У меня есть поля ввода:
$name = $_REQUEST["name"];
и в том виде, который появляется снова, есть (игнорируйте тот факт, что он находится в таблице):
<tr> <td>Name:*</td> </tr> <tr> <td><input name="name" type="text" size="15" value="<?php echo $name ?>" maxlength="200" /></td> </tr>
Итак, какие-то идеи для падений?
Вам нужно добавить атрибут «selected» к соответствующему варианту. Я считаю, что вам также нужно указать атрибут value для каждого параметра. Я точно не знаю, как вы создаете этот список, но, возможно, это поможет:
<?php $options = array( 1=>'General Question', 'Company Information', 'Customer Issue', 'Supplier Issue', 'Supplier Issue', 'Request For Quote', 'Other' ); $topic = $_REQUEST['topic']; // the topic name would now be $options[$topic] // other PHP etc... ?> <select name="topic" style="margin-bottom:3px;"> <?php foreach ( $options as $i=>$opt ) : ?> <option value="<?php echo $i?>" <?php echo $i == $topic ? 'selected' : ''?>><?php echo $opt ?></option> <?php endforeach; ?> </select>
Прежде всего, дайте элементу option атрибут value. Это делает код более надежным, потому что он не прерывается, если вы решите изменить текст опции. После этого:
<?php $topic = $_REQUEST['topic']; ?> <?php $attr = 'selected="selected"'; ?> <select name="topic" style="margin-bottom:3px;"> <option value="1" <?php echo $topic == 1 ? $attr : ''; ?>>General Question</option> <option value="2" <?php echo $topic == 2 ? $attr : ''; ?>>Company Information</option> <option value="3" <?php echo $topic == 3 ? $attr : ''; ?>>Customer Issue</option> <option value="4" <?php echo $topic == 4 ? $attr : ''; ?>>Supplier Issue</option> <option value="5" <?php echo $topic == 5 ? $attr : ''; ?>>Request For Quote</option> <option value="6" <?php echo $topic == 6 ? $attr : ''; ?>>Other</option> </select>