2013-03-17 28 views
1

如果我有一个选择的形式,例如:显示上选择GET

 <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方法提交,但需要其提交时,结果页面这是在选项上的方式选择要显示。

所以说,如果“价格(从高到低)”被选中然后将其提交

任何想法后显示在选择框在结果页上?

谢谢!

回答

1

当你将提交表单(假设你的形式提交按钮),所有的数据将被发送到PHP,你会找回里面_GET $(全球VAR)

$_GET['sort'] 
您的所有数据

将包含所选的值。

然后,如果你要预先选择,你只需要添加你的HTML

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

你必须为选择的每个选项做同样的里面的一些PHP代码。 这将允许您在第一次提交后预先选择好的选项。

解决方案2:

如果不婉插入你的HTML代码中过多的PHP,你可以张贴的值存储一个JavaScript变种内,然后,在加载DOM时选择好的选择(使用好的JS库如jQuery例如)

你的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”时,它将始终工作)。所以你必须评估赞成和反对,并做出选择。

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

+0

辉煌的作品完美地启用了PHP代码! – tech292 2013-03-17 23:30:28

+0

嗯好吧我不知道我怎么会用JS做它,尽管它很好。你有没有例子? – tech292 2013-03-17 23:32:18

+0

添加一个示例。你可以在这里试试JS部分:http://jsfiddle.net/jnygB/ – MatRt 2013-03-17 23:38:44

1
$_GET['sort'] 

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

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

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

0

试试这个代码,这可能是你想要的。我假设你在你的.php文件或您的其他扩展写作,也许.html在他们(也许通过.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> 
+0

也是一个很好的答案,保存在每个选项上键入代码。如果我可以投票,我会! :) – tech292 2013-03-17 23:38:27