1

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

        <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 方法提交,但需要一种方法来确定何时提交,并在结果页面上选择要显示的选项。

所以说,如果选择了“价格(从高到低)”,那么它会在提交后显示在结果页面的选择框中

有任何想法吗?

谢谢!

4

3 回答 3

1
$_GET['sort'] 

在提交的页面中会给你选择的选项。并检查表单是否已提交:

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

其中“提交”是提交按钮的名称。

于 2013-03-17T23:20:12.553 回答
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>

以及标签中的一些 JS<script>代码

// 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 中添加“选定”时,它总是会起作用)。因此,您必须评估利弊并做出选择。

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

于 2013-03-17T23:23:45.197 回答
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>
于 2013-03-17T23:29:57.303 回答