【问题标题】:an option already selected on page load in drop down list and also changeble [duplicate]在下拉列表中的页面加载上已经选择了一个选项,并且还可以更改 [重复]
【发布时间】:2012-08-17 14:57:21
【问题描述】:

可能重复:
PHP - PRE-select drop down option

我的 php 项目中存在用户可以编辑其帐户的情况。

在编辑中,有一个城市字段,它是城市的下拉列表。

我想在编辑之前选择一个在个人资料中的城市(用户在注册时输入的城市)。

他还可以通过选择 fron 下拉列表来更改他的城市。

HTML代码:

<div class="search_bar1_txt">State:</div>
<div class="search_bar1">
<select class="styled" name="state_trainer">
 <option>-select-</option>
 <option>washington</option>
 <option>perth</option>
 <option>delhi</option>
 <option>london</option>
 </select></div>
</div>

在编辑时我正在使用此代码来获取用户的当前数据(城市):

<?php
if(isset($_GET['userid']))
{
$sql = "select city from `wp_pelleresuser` where userId =".$_GET['userid'];
$result = mysql_query($sql);
$value = mysql_fetch_assoc($result);
}?>

请告诉我如何获得已经选择的从数据库中获取的选项。

而且它是可变的。

【问题讨论】:

标签: php javascript jquery mysql


【解决方案1】:
<div class="search_bar1_txt">State:</div>
 <div class="search_bar1">
  <select class="styled" name="state_trainer">
   <option <?if($value['city']=='-select-') echo "selected";?>>-select-</option>
   <option <?if($value['city']=='washington') echo "selected";?>>washington</option>
   <option <?if($value['city']=='perth') echo "selected";?>>perth</option>
   <option <?if($value['city']=='delhi') echo "selected";?>>delhi</option>
   <option <?if($value['city']=='london') echo "selected";?>>london</option>
  </select>
 </div>
</div>

【讨论】:

    【解决方案2】:

    您可以通过多种方式做到这一点,最简单的(可能也是最不优雅的)是这样做:

    <select class="styled" name="state_trainer">
    <?php
    $myCity='london'; // assumed to be data from database...
    echo '<option'.($myCity=='-select-') ? ' selected ' : ' ' .'-select-</option>';
    echo '<option'.($myCity=='washington') ? ' selected ' : ' ' .'washington</option>';
    ?>
    

    这当然很可怕。

    我宁愿建议您在从数据库中提取信息并将初始下拉列表放在一起时检查数据。

    如果您正在创建一个数据数组来创建下拉列表(例如),请立即检查它。如果城市符合您的要求,请立即在您的循环中进行。

    $usersCity="london";
    $myCityList=array();
    
    while( ... ) // Database loop that is pulling the data from the database.
    {
        $selected='';
        if($userCity==$row['city'])
        {
            $selected=' selected ';
        }
        $myCityList[]='<option'.$selected.'>'.$row['city'].'</option>';
    }
    

    然后要显示下拉列表,您可以这样做:

    $cityCount=count($myCityList);
    for($i=0;$i<$cityCount;$i++)
    {
        echo $myCityList[$i].'\n';
    }
    

    用户所在的城市已经被选中。

    【讨论】:

      【解决方案3】:

      我不确定这是否清楚,但您可以将代码放入每个选项单元格中,如下所示:

      <option <?php if($value['city'] == "washington") echo "selected=selected"; ?> >washington</option>
      

      【讨论】:

        【解决方案4】:

        这样你就可以得到你想要的。 并且更好的使用mysqli函数进行数据库交互。

        <option
        <?php if ($value['city'] == delhi)
                  {
                                        echo "selected = true"; 
        
                  }  ?> 
         >delhi
        </option>
        

        【讨论】:

          【解决方案5】:

          只需将所选值从数据库中取出

          $choosen = $some value form db
          

          那么 $options = array(1 => 'data1', 2 => 'data2', 3 => 'data3'); foreach ($options as $key => $value) { 回声''。 $价值。 ''; }

          在 php 中获取你的选择框。我想你明白,它对我有用

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-06-14
            • 2018-01-24
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-03-11
            • 1970-01-01
            相关资源
            最近更新 更多