在GET上显示选择

时间:2013-03-17 23:17:45

标签: php html forms select

如果我有一个选择表格,例如:

        <form action='?' method='get' name='form_filter' class="sortoptions" >
        <select name="sort" >  
          <option value="None">None</option>  
          <option value="PriceLow">Price (Low to High)</option>  
          <option value="PriceHigh">Price (High to Low)</option> 
          <option value="NameAZ">Name (A-Z)</option>  
          <option value="NameZA">Name (Z-A)</option>  
          </select>

我正在使用GET方法提交,但需要一种在提交时的方式,并在结果页面上选择要显示的选项。

因此,如果选择“价格(从高到低)”,它将在提交后显示在结果页面上的选择框中

有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

$_GET['sort'] 
提交的页面中的

将为您提供所选的选项。并检查表单是否已提交:

if(isset($_GET['submit'])) {
    // do something with the result
}

其中'submit'是提交按钮的名称。

答案 1 :(得分:1)

当您提交表单时(假设表单中有提交按钮),所有数据都将发送到PHP,您将在$ _GET(全局变量)中检索所有数据

$_GET['sort']

将包含所选的值。

然后,如果您想预先选择,您只需在HTML中添加一些PHP代码

<option value="PriceLow" <?php echo ((!empty($_GET['sort']) && $_GET['sort'] == 'PriceLow') ? 'selected="selected"' : '') ?>>Price (Low to High)</option>

您必须对选择的每个选项执行相同操作。 这将允许您在首次提交后预先选择好的选项。

解决方案2:

如果你不想在HTML代码中插入过多的PHP,你可以将发布的值存储在javascript var中,然后在加载DOM时选择好的选项(使用像jQuery这样的好的JS库)例如)

您的HTML代码:

<select name="sort" >  
    <option value="None">None</option>  
    <option value="PriceLow">Price (Low to High)</option>  
    <option value="PriceHigh">Price (High to Low)</option> 
    <option value="NameAZ">Name (A-Z)</option>  
    <option value="NameZA">Name (Z-A)</option>  
</select>

<script>标记

中的一些JS代码
// Need jQuery !
$(document).ready(function() {

    // Generate the selected var in JS using the value in PHP
    var selectedOption = '<?php echo $_GET['sort']; ?>';

    // Select the selected option and append the selected attribute
    $("select[name=sort] option[value=" + selectedOption + "]").attr('selected', 'selected');

});

一旦页面加载,此代码将自动选择好的选项。

信息:好的一点是,您有一个更清晰,可维护的HTML代码。不好的一点是,如果客户端上没有启用JavaScript,则自动选择将不起作用(当您使用PHP在HTML中添加“selected”时,它将始终有效)。因此,您必须评估利弊,并做出选择。

注意:您可以将操作留空而不是“?”

答案 2 :(得分:0)

试试这段代码,这可能是你想要的。我假设你在你的.php文件或其他扩展中写了它,也许.html启用了php代码(可能是通过.htaccess文件)

<?php if (isset($_GET['sort'])){ ?>
<?php $sel= $_GET['sort']; # format? ?>

<strong><?php print($sel);?></strong>

<?php } ?>

<form action='' method='GET' name='form_filter' class="sortoptions" >
<select name="sort" >
    <?php
        $ff = Array(
            'None' => 'None',
            'PriceLow' => 'Price (Low to High)',
            'PriceHigh' => 'Price (High to Low)',
            'NameAZ' => 'Name (A-Z)',
            'NameZA' => 'Name (Z-A)',
        );
    ?>
    <?php foreach ($ff as $v => $t) {?>
        <option value="<?php print($v);?>" <?php if (isset($_GET['sort']) && ($_GET['sort'] == $v)) print('selected="selected"');?>"><?php print($t);?></option>
    <?php } ?>
</select>
<input name="submit" type="submit" />
</form>