2013-03-17 29 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