Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 显示从数据库(SQL Server)填充的下拉列表的值_Php_Drop Down Menu - Fatal编程技术网

Php 显示从数据库(SQL Server)填充的下拉列表的值

Php 显示从数据库(SQL Server)填充的下拉列表的值,php,drop-down-menu,Php,Drop Down Menu,我试图显示从数据库填充的动态下拉列表的保存值。我的代码如下: <?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(), tr

我试图显示从数据库填充的动态下拉列表的保存值。我的代码如下:

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

提出申请的部门

工作原理:下拉列表填充得很好,值也保存到数据库中


我需要的是:希望显示数据库中保存的值和下拉列表,以便用户再次编辑该字段。感谢您的帮助:)

您需要获取当前用户选择的值,然后在迭代结果集时可以执行以下操作:

while($row=sqlsrv\u fetch\u数组($query\u display,sqlsrv\u fetch\u ASSOC)){
如果($Department==$row['Name']){
回显“$row['Name']”;
继续;
}
回显“$row['Name']”;
}

假设$userSavedValue在本例中为$Department,当我尝试此操作时,所选值和数据库中的选项值均未显示。@SoumyaRao刚刚编辑了我的答案,以更好地反映我所指的解决方案,如果此操作仍然无效,可能是因为$row['Name']中的值不等于$Department,否则会有其他干扰,比如其中一个值是大写的,或者诸如此类的东西。感谢您的回复:)不幸的是,它不起作用。交叉检查大写字母,所有内容似乎都正常,这次显示的是选项值,但不是所选值。@SoumyaRao。我认为了解问题的最好方法是回显当前用户选择的值。然后,在循环中回显您添加的所有选项,以便检查是否在您添加的选项中找到了用户选择的值。
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>';
}