如果我有一个选择表格,例如:
<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方法提交,但需要一种在提交时的方式,并在结果页面上选择要显示的选项。
因此,如果选择“价格(从高到低)”,它将在提交后显示在结果页面上的选择框中
有什么想法吗?
谢谢!
答案 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>
标记
// 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>