我试图在PHP中动态显示selects选项的值。基本上,用户创建了存储在数据库中的那些选项,然后我试图在其他地方获取它。为此,我编写了以下函数:

function fetch_acad_yr($conn) {
    $query = "SELECT a.fk_acadyear_id as acadyearid,b.acad_year as acadyear FROM tbl_admparam a inner join list_acad_years b on a.fk_acadyear_id = b.pk_acad_year_id";
    $stmt = $conn->prepare($query);
    if ($stmt->execute()) {
        foreach ($stmt as $row) {
            ?>
            <option value="<?php echo $row['acadyearid'] ?>"><?php echo $row['acadyear'] ?></option>
            <?php
        }
    }
}


然后在html我叫这个功能

<select class="form-control" id="acad_period" name="acad_period" required>
<option value="">Please select...</option>
 <?php fetch_acad_yr($conn); ?>
 </select>


但是,这些选项确实会显示所有值,只是将其变为空白,并且不会使存储在数据库中的值无效。我尝试单独运行查询,查询返回了所需的结果

最佳答案

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";

// Create connection
$con = new mysqli($servername, $username, $password,$dbname);
if ($con->connect_error)
{
    die("Connection failed: " . $con->connect_error);
}

?>
<select name="acad_period" required="">
    <option value="0">Select</option>
    <?php
    $s= "SELECT a.fk_acadyear_id as acadyearid,b.acad_year as acadyear FROM tbl_admparam a inner join list_acad_years b on a.fk_acadyear_id = b.pk_acad_year_id";
    $ex= $con->query($s);
    if (!$ex)
      {
        echo("Error description: " . mysqli_error($con));
      }
      else
      {
        while ($f= $ex->fetch_assoc())
        {
            ?>
            <option value="<?php echo $f['acadyearid'] ?>"><?php echo $f['acadyear'] ?></option>
            <?php
            # code...
        }
      }

    ?>
</select>

关于php - 选择不使用功能显示的选项,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50098665/

10-11 02:49
查看更多