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:解決策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>タグのいくつかの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に「選択済み」を追加する場合は常に機能します)。したがって、賛否両論を評価し、選択する必要があります。

注:「?」の代わりにアクションを空のままにしておくことができます。

于 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 に答える