簡體   English   中英

從帶有鏈接的選擇菜單中自動選擇選項

[英]Automatically select option from select menu with link

我正在嘗試使用php(如果不是php,則是javascript)鏈接到頁面,並在鏈接末尾包含“?type = foo”或“ #foo”,以便在加載鏈接的頁面時自動選擇表單中的下拉菜單中的特定選項,具體取決於鏈接的結尾。 我嘗試搜索此操作,但不知道此操作的實際含義,但是我之前已經看過它。 有誰知道如何實現這一目標? 非常感謝。

過去創建這些變量時,為了易於使用,我只是將選擇的值插入到select對象的頂部,而不是滾動瀏覽整個列表並在遇到時將其標記為原來的樣子。

假設頁面的名稱類似於page.php?theSelectedList=Cougar

<select name="theSelectList">
  <?php
    if( isset( $_GET['theSelectList'] ) )
      echo '<option selected="selected">'.$_GET['theSelectList'].'</option>';
  ?>
  <option>Aardvark</option>
  <option>Baboon</option>
  <option>Cougar</option>
  <option>Dog</option>
  <option>Elephant</option>
</select>

在這種情況下, Cougar的選項將顯示兩次-一次在列表頂部並被選中,然后再次在常規位置的列表中向下移動。 這聽起來可能令人困惑,但是在我使用過的實例中,它非常直觀。

很好而且很簡單,但是,我要提醒一下,如果“選項標簽”和“選項值”不同(例如,每個選項都有一個數字值,但有一個文本標簽),則上述操作需要重新調整。

如果選項在<select>則您要查找的名稱是selected屬性。 可以將其應用於每個<option>標記,如下所示: W3Schools

使用它,您可以簡單地使用PHP if語句,例如:

<?php

$options = array('Norway', 'United States', 'Springfield');

echo '<select>';

foreach($options as $country) {
    if(array_key_exists('selected', $_GET) && $_GET['selected'] === $country) {
        echo '<option selected="selected">'.$country.'</option>';
    }
    else {
        echo '<option>'.$country.'</option>';
    }
}

echo '</select>';

如果查詢是?country=Norway則在頁面加載時將選擇Norweg。

當然也可以使用javascript解決。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM