如果我有一个选择表单,例如:
<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方法提交,但需要一种方法来确定它何时提交,以及在结果页面上显示选择的选项。
因此,如果选择了"价格(从高到低(",则在提交后,它将显示在结果页面的选择框中
有什么想法吗?
谢谢!
当您提交表单时(假设表单中有一个提交按钮(,所有数据都将发送到PHP,您将在$_GET(全局变量(中检索所有数据
$_GET['sort']
将包含选定的值。
然后,如果你想预先选择,你只需要在你的HTML 中添加一些PHP代码
<option value="PriceLow" <?php echo ((!empty($_GET['sort']) && $_GET['sort'] == 'PriceLow') ? 'selected="selected"' : '') ?>>Price (Low to High)</option>
您必须对select的每个选项执行相同的操作。这将允许您在第一次提交后预先选择好的选项。
解决方案2:
如果你不想在HTML代码中插入太多PHP,你可以将发布的值存储在JavaScriptvar中,然后在加载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"时,它将始终起作用(。因此,你必须评估赞成和反对意见,并做出选择。
注意:您可以将操作保留为空,而不是"?">
$_GET['sort']
在提交的页面中,将为您提供所选的选项。检查表格是否已提交:
if(isset($_GET['submit'])) {
// do something with the result
}
其中"提交"是提交按钮的名称。
试试这段代码,它可能是您想要的。我假设你是在.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>