HTML选择选项设置选择的默认echo-get值php


HTML select option set selected default echo get value php

我有一个简单的HTML表单,有一个类似的简单选择

<select name="myselect"  selected="<?php echo $_GET['brand'];?>">
<option value="" <?php if($brand== "") echo "selected"; ?>>all brands</option>
<option value="samsung" <?php if($brand== "samsung") echo "selected"; ?>>Samsung</option>
<option value="motorola" <?php if($brand== "motorola") echo "selected"; ?>>Motorola</option>
</select>

我想做的是因为它是一个搜索过滤结果表单,如果用户选择三星作为默认品牌来搜索下一个带有过滤器的页面,搜索结果将选择选项默认选择三星,而不是其他。如果用户选择搜索摩托罗拉,则所选选项默认为摩托罗拉。

我该如何解决这个问题?

选择的是option的属性,而不是select的属性,因此将其从select标签中删除,更改为:

<?php $brand = trim( strtolower($_GET['brand']) ); ?>
<select name="myselect">
<option value="" <?php if($brand== "") echo "selected"; ?>>all brands</option>
<option value="samsung" <?php if($brand== "samsung") echo "selected"; ?>>Samsung</option>
<option value="motorola" <?php if($brand== "motorola") echo "selected"; ?>>Motorola</option>
</select>

这是在php中使用foreach循环和三元运算符选择=的简单示例。。。使用可以很容易地理解和自定义该代码。。。

<?php $plan = array('1' => 'Green','2'=>'Red' ); ?>
    <select class="form-control" title="Choose Plan">
    <?php foreach ($plan as $key => $value) { ?>
      <option value="<?php echo $key;?>" <?php echo ($key ==  '2') ? ' selected="selected"' : '';?>><?php echo $value;?></option>
    <?php } ?>
    </select>
<?php $selected_brand = $_GET['brand'];
$temp_str = '';
$temp_str .= '<select name="myselect">';
$brands_array = array("all" => "all brands", "samsung" => "Samsung", "motorola" => "Motorola");
    foreach ($brands_array as $key => $value) {
        if($key == $selected_brand){
            // For selected option.
            $temp_str .= '<option value="'.$key.'" selected>'.$value.'</option>';
        } else {
            $temp_str .= '<option value="'.$key.'">'.$value.'</option>';
        }
    }
$temp_str .= '</select>';
echo $temp_str; // Select box.
?>