【问题标题】:how to make the value fetched from mysql as selected option in a drop down using php or javascript如何使用 php 或 javascript 使从 mysql 获取的值作为下拉列表中的选定选项
【发布时间】:2017-03-20 10:07:15
【问题描述】:

我正在从用户那里获取详细信息并将其存储在 mysql 数据库中。我有一个更新页面,用户可以在其中更新值。那时,我想让用户从下拉列表中重新选择值,在该下拉列表中,首先输入的值应该已经被选中。如何使从数据库中获取的值作为选定选项。请用一些代码示例进行解释。

$query="SELECT * from tablename where id=".$id;// I've assigned the value for id 
$rows=mysql_query($query,$connect); 
$row=mysql_fetch_array($rows,MYSQL_ASSOC);
?>
<select name="designation"> <?php
   echo "<option value=\"$row[OptionID]\" SELECTED>$row[OptionName]</option>\n";
?>
    <option value=sol1>sol1</option>
    <option value=sol2>sol2</option>
    <option value=sol3>sol3</option>
</select> 

【问题讨论】:

  • 到目前为止你尝试过什么代码?
  • $query="SELECT * from tablename where id=".$id;// 我已经为 id 赋值 $rows=mysql_query($query,$connect); $row=mysql_fetch_array($rows,MYSQL_ASSOC);?>

标签: javascript php mysql


【解决方案1】:

假设您有一个包含用户(ID、UserID、OptionID)的表和一个选项表(OptionID、OptionName)或类似的表。

$get_details = $conn->query("SELECT * FROM table");
$data = $get_details->fetch_assoc();

$get_options = $conn->query("SELECT * FROM options");
while($row = $get_options->fetch_assoc()) {  
  if($row['OptionID'] == $data['OptionID'])
    echo "<option value=\"$row[OptionID]\" SELECTED>$row[OptionName]</option>\n";
  else
    echo "<option value=\"$row[OptionID]\">$row[OptionName]</option>\n";

}

【讨论】:

    【解决方案2】:

    为了使用数据库制作下拉选择框,您可以按照以下给定方法:

    <?php
     $databaseHost = "localhost"; 
     $databaseUser = "root";
     $databasePassword = "password";
     $databaseName = "employee";
     $con=mysql_connect($databaseHost ,$databaseUser ,$databasePassword,'employee')or die ('Connection Error');
    $dbSelected = mysql_select_db('foo', $con);
    if (!$dbSelected) {
        die ('Can\'t use foo : ' . mysql_error());
    }
     ?>
    <strong> Select Designation : </strong> 
    <select name="empName"> 
        <option value=""> -----------ALL----------- </option> 
        <?php
             $dd_res=mysqli_query($con, "Select DISTINCT designation from emp");
             while($r=mysqli_fetch_row($dd_res))
             { 
                   echo "<option value='$r[0]'> $r[0] </option>";
             }
         ?>
    </select>
    

    更新 对于旧的 MySQl:

    <?php
     $databaseHost = "localhost"; 
     $databaseUser = "root";
     $databasePassword = "password";
     $databaseName = "employee";
     $con=mysql_connect($databaseHost ,$databaseUser ,$databasePassword)or die ('Connection Error');
    $db_selected = mysql_select_db('foo', $con);
    if (!$db_selected) {
        die ('Can\'t use foo : ' . mysql_error());
    }
     ?>
    <strong> Select Designation : </strong> 
    <select name="empName"> 
        <option value=""> -----------ALL----------- </option> 
        <?php
             $dd_res=mysql_query("Select DISTINCT designation from emp");
             while($r=mysql_fetch_row($dd_res))
             { 
                   echo "<option value='$r[0]'> $r[0] </option>";
             }
         ?>
    </select>
    

    【讨论】:

    • 谢谢 .. 但我使用的不是 sqli,而是 mysql 旧版本。代码还是一样的吗?
    • 是的,只需使用您的方法连接到数据库。
    • @ShaktiPhartiyal 你的第一种方法是错误的。你不能把mysqlmysqli混在一起。
    猜你喜欢
    • 1970-01-01
    • 2022-12-10
    • 2011-01-25
    • 1970-01-01
    • 1970-01-01
    • 2013-09-21
    • 2010-11-08
    • 1970-01-01
    相关资源
    最近更新 更多