【问题标题】:Compare value from $_GET[] and select an option比较 $_GET[] 的值并选择一个选项
【发布时间】:2012-09-12 14:24:39
【问题描述】:

我需要在 $_GET[] 给出的某些条件下“选择”选项的解决方案。 这个想法是。

<?
$sql_id="select * from stock order by id asc";
$result_id=mysql_db_query($dbname,$sql_id);
while($rec_id=mysql_fetch-array($result_id)){
  $_id=$rec_id['id'];
  $_title=$rec_id['title'];
if($_GET['id']==$_id){
  echo "<option value=\"$_id\" selected>$_title</option>";
}else{//I need this option selected where id='2'
  echo "<option value=\"$_id\">$_title</option>";
}
?>

问题是:我也需要 empty($_GET['id'])=2 。那么条件就是

  1. 当 $_GET['id']==$_id 时选择一个选项
  2. 当 $_GET['id']=="" 时从 mysql 中选择一个选项(其中 stock.id='2')

【问题讨论】:

    标签: php select conditional-statements option


    【解决方案1】:

    不确定我是否理解正确,但您为什么不尝试以下方法:

    if($_GET['id']==$_id){
      echo "<option value=\"$_id\" selected>$_title</option>";
    }
    else if (($_GET['id']=="") && ($_id==2)){//I need this option selected where id='2'
      echo "<option value=\"$_id\">$_title</option>";
    }
    

    【讨论】:

    • 啊..我试过那个方法。但问题是 $_id==2 时选项未选择为 2。
    • 您能否提供更多关于您想要实现的目标的信息?
    【解决方案2】:
    <?php
        $query = "SELECT * from `".$dbname."`.`stock` ORDER BY `id` ASC";
        $result_id = mysql_query($query);
        $id = isset($_GET['id']) ? (int)$_GET['id'] : 0;
        while($rec_id = mysql_fetch_array($result_id)){
            $sel = '';
            if($rec_id['id'] == $id){
                $sel = " selected='selected'";
            }
            if(!$id && $rec_id['id'] == 2){
                $sel = " selected='selected'";
            }
            echo "<option value='".$rec_id['id']."'".$sel.">".$rec_id['title']."</option>";
        }
    ?>
    

    【讨论】:

    • 第二个if:if(!$id &amp;&amp; $rec_id['id'] == 2){
    【解决方案3】:

    我现在知道了……

    <?
    //let's test the $_GET['id'] value first
    if(!$_GET['id']){
        $_id="2";//if no $_GET['id'] then $_id==2
    }elseif(isset($_GET['id'])){
        $_id=$_GET['id'];
    }
    
    $sql_id="select * from stock order by id asc";
    $result_id=mysql_db_query($dbname,$sql_id);
    while($rec_id=mysql_fetch-array($result_id)){
      $_id=$rec_id['id'];
      $_title=$rec_id['title'];
    if($_GET['id']==$_id){
      echo "<option value=\"$_id\" selected>$_title</option>";
    }else{//I need this option selected where id='2'
      echo "<option value=\"$_id\">$_title</option>";
    }
    ?>
    

    问题已解决!非常感谢您的帮助!

    【讨论】:

      猜你喜欢
      • 2015-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-19
      • 2021-01-31
      • 1970-01-01
      • 1970-01-01
      • 2015-08-15
      相关资源
      最近更新 更多