php
  • drop-down-menu
  • 2009-02-07 75 views 0 likes 
    0

    如果在瀏覽器中我有一些參數,如:PHP - 自動選擇基於參數在瀏覽器鏈接的下拉菜單

    http://localhost/specials.php?year=2009&make=honda&model=civic 
    

    ,並且下拉看起來是這樣的:

    <select name="year"> 
    <?php 
    $query = mysql_query("select distinct year from tbl_content where year = '$year'"); 
    while($row = mysql_fetch_assoc($query)) { 
    
    echo "<option value=\"{$row['year']}\">{$row['year']}</option>"; 
    } 
    ?> 
    </select> 
    

    現在我想要做的就是show下拉選項的值等於瀏覽器URL中的參數year。

    我嘗試這樣做:

    <select name="year"> 
    <?php 
    $query = mysql_query("select * from tbl_year 
    while($row = mysql_fetch_assoc($query)) { 
    
    #============================= 
    if(isset($_GET['year'])) { 
    
    $year = (int)$_GET['year']; 
    if($year == $row['year'] { $selected = "selected"; } 
    else { $selected = ""; 
    } 
    
    
    echo "<option value=\"{$row['year']}\" {$selected}>{$row['year']}</option>"; 
    } 
    ?> 
    </select> 
    
    +0

    什麼是由所述第二片的代碼 – 2009-02-07 03:13:36

    +0

    <選擇name = 「年」> 的HTML被輸出<選項值= 「NA」>選擇年份 <選項值= 「2008」> 2008 user27751 2009-02-07 03:16:01

    回答

    2

    也許嘗試"selected='selected'",使其有效的XML。

    0
    <select name="year"> 
    <?php 
    
    $selectedYear = NULL; 
    
    if(isset($_GET['year'])) 
        $selectedYear = (int)$_GET['year']; 
    
    $query = mysql_query('SELECT year FROM tbl_year GROUP BY year ORDER BY year ASC'); 
    
    while($row = mysql_fetch_assoc($query)) { 
        echo '<option value="' . htmlspecialchars($row['year']) . '"'; 
    
        if($selectedYear === (int)$row['year']) { 
         echo ' selected="selected"'; 
        } 
    
        echo '>' . htmlspecialchars($row['year']) . '</option>"; 
    } 
    
    ?> 
    </select> 
    
    0

    隨意分開功能!

    <?php 
    function selectList($name,$values,$labels=null,$selected=null){ 
    if($labels==null) $labels=&$values; 
        $data="<select name='$name'>"; 
        foreach($values as $k=>$v){ 
         $selected=($v==$selected)?'selected="selected"':false; 
         $data.="<option value='$v' $selected>".htmlspecialchars($labels[$k])."</option>"; 
         } 
         $data.="</select>"; 
         return $data; 
    } 
    
    $select=isset($_REQUEST['year'])?(int) $_REQUEST['year']:null; 
    $query=mysql_query("SELECT DISTINCT `year` FROM `tbl_year` ORDER BY `year`"); 
    while(($row=mysql_fetch_assoc($query))!==false){ 
        $values[]=$row['year']; 
        } 
    echo selectList("year",$values,null,$select); 
    ?> 
    
    相關問題