2015-08-31 145 views
2

我正在尝试显示从数据库填充的动态下拉列表的已保存值。我的代码如下:显示从数据库填充的下拉列表值(SQL Server)

<?PHP 
$server = "xxx"; 
$options = array( "UID" => "xxx", "PWD" => "xxx", "Database" => "xxx"); 
$conn = sqlsrv_connect($server, $options); 
if ($conn === false) die("<pre>".print_r(sqlsrv_errors(), true)); 
echo " "; 

$myquery="SELECT Department FROM Change_Details WHERE id='2137'"; 
$fetched=sqlsrv_query($conn,$myquery) ; 
if($fetched === false) { die(print_r(sqlsrv_errors(), true));} 
    while($res=sqlsrv_fetch_array($fetched,SQLSRV_FETCH_ASSOC)) 
    { 
     $Department=$res['Department']; 
    } 
?> 

<div class="container"> <!-- Department --> 
    <div class="form-inline clearfix"> 
     <label class="col-md-5">Department initiating the Request</label> 
      <label name="Department"></label> 
       <div class="col-md-5"> 
          <?PHP 
          echo "<select name= 'Department' class='form-control selectpicker' onChange='getState(this.value)' Required>"; 
          echo '<option value="$Department">'.'--Please Select Department--'.'</option>'; 
          $sql = "SELECT ID,Name FROM Departments"; 
          $query = sqlsrv_query($conn,$sql); 
          $query_display = sqlsrv_query($conn,$sql); 
          while($row=sqlsrv_fetch_array($query_display,SQLSRV_FETCH_ASSOC)){ 
          echo "<option value='". $row['Name']."'>".$row['Name']. '</option>'; 
          } 
          echo "</select>"; 
         ?> 
       </div> 
    </div> 
</div><br/> 

什么是工作:下拉列表正在填充完美,该值也保存到数据库中。

我需要:想要显示从数据库和下拉列表中保存的值以及用户再次编辑该字段。感谢所有帮助:)

回答

1

遍历结果集,你可以做这样的事情时,你需要获得当前用户选择的值,则:

while($row=sqlsrv_fetch_array($query_display,SQLSRV_FETCH_ASSOC)){ 
    if ($Department == $row['Name']) { 
     echo "<option selected='selected' value='". $row['Name']."'>".$row['Name']. '</option>'; 
     continue; 
    } 

    echo "<option value='". $row['Name']."'>".$row['Name']. '</option>'; 
} 
+0

假设$ userSavedValue为$系在这种情况下,当我试过了,数据库中的选定值和选项值都不显示。 – SR1092

+0

@SoumyaRao刚刚编辑我的答案,以更好地反映我所指的解决方案,如果这仍然无法正常工作,也许是因为$ row ['Name']中的值不等于$ Department,否则其他的东西会干扰,像其中一个值是大写或类似的东西。 – Gori

+0

Thankyou回应:)不幸的是,它不工作。交叉检查大写字母和所有东西似乎都是按顺序排列的,这次选项值正在显示,但不是选定的值。 – SR1092

相关问题