已在页面加载中选择的选项在下拉列表中也可更改

时间:2012-08-22 08:07:49

标签: php javascript jquery mysql

  

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

我的php项目中有一个用户可以编辑他的帐户的情况。

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

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

他也可以通过选择前面的下拉列表来改变他的城市。

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);
}?>

请告诉我如何从数据库中获取一个选项。

而且它也是可以改变的。

5 个答案:

答案 0 :(得分:2)

<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>

答案 1 :(得分:1)

我不确定它是否清晰,但您可以将代码放在每个选项单元格中:

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

答案 2 :(得分:1)

你可以通过多种方式实现,最简单(也可能是最不优雅)就是这样做:

<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 :(得分:1)

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

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

          }  ?> 
 >delhi
</option>

答案 4 :(得分:0)

选择值格式为db

$choosen = $some value form db

然后     $ options = array(1 =&gt;'data1',2 =&gt;'data2',3 =&gt;'data3');                     foreach($ options as $ key =&gt; $ value)                     {                         回声''。 $ value。 '';                     }

在php中获取您的选择框。我知道,这对我有用