PHP Как я могу сохранить выбранную опцию из выпадающего списка, чтобы оставаться выбранным при отправке? - PullRequest
0 голосов
/ 22 декабря 2010

у меня есть:

<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>

Итак, есть идеи для выпадающих?

Ответы [ 2 ]

1 голос
/ 22 декабря 2010

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

<?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>
0 голосов
/ 22 декабря 2010

Прежде всего, дайте элементу 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>
...