Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP如何从下拉列表中保留所选选项以在提交时保持选中状态?_Php_Variables_Drop Down Menu_Selected - Fatal编程技术网

PHP如何从下拉列表中保留所选选项以在提交时保持选中状态?

PHP如何从下拉列表中保留所选选项以在提交时保持选中状态?,php,variables,drop-down-menu,selected,Php,Variables,Drop Down Menu,Selected,我有: <select name="topic" style="margin-bottom:3px;"> <option>General Question</option> <option>Company Information</option> <option>Customer Issue</option> <option>Supplier Issue</op

我有:

<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>
在再次显示的表单中,有(忽略它在表中的事实):


姓名:*

首先,给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>

>公司信息
>供应商问题
>其他
您需要将“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>

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