动态更改每行数据的下拉列表的选定状态


Dynamically change selected state of dropdown(s) for each row of data

我想显示下拉菜单,其中包含基于数据库中记录的选定日期。

是否有任何有效的方法可以根据记录的数据动态更改下拉菜单的选定状态?

谢谢

注:

  • 如果以下clinicID的记录日期超过一行,则会有许多下拉菜单

  • $day是一个整数,1表示周日,2表示周一,依此类推

这是分枝杆菌

    // Check if any row existed
    if ($count>0) {
        // If row existed then start printing it
        while($row = mysql_fetch_assoc($retval))
        {
            $day = $row['day'];
            $startHour = $row['startHour'];
            $startMin = $row['startMin'];
            $endHour = $row['endHour'];
            $endMin = $row['endMin'];
            echo 
            "<span>" .
            "<select name='day[]'>" .
            "<option value='1' selected='selected'>Sunday</option>" . 
            "<option value='2'>Monday</option>" . 
            "<option value='3'>Tuesday</option>" .
            "<option value='4'>Wednesday</option>" .
            "<option value='5'>Thursday</option>" .
            "<option value='6'>Friday</option>" .
            "<option value='7'>Saturday</option>" .
            "<option value='0'>Everyday</option>" .
            "</select>"
            //Please ignore this below
            "<br>start : " . $startHour . "." . $startMin . 
            "<br>end : " . $endHour . "." . $endMin . 
            "<br><br>";
        } 
    }
    else {
    }

如果这是新代码,请使用PDO或MySQLi。mysql已经贬值,不应该在新代码php.net/manual/en/function.mysql-query.php上使用。试试这个链接,它对我帮助很大:php妄想.net/pdo

将您的代码更改为类似的内容(此代码包括PDO实现):

<?php
$db = new PDO('mysql:host=yourhost;dbname=dbname', 'username', 'password', array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'UTF8'")); 
$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

//Printing schedule already in the database
$getbusinesshours = "select * from businesshours where clinicID = $clinicID";
$stmt = $db->prepare($getbusinesshours);
$stmt->execute();
$count = $stmt->rowCount();
// Check if any row existed
if ($count>0){
    // If row existed then start printing it
    foreach ($stmt as $row){
    {
        $day = $row['day'];
        $startHour = $row['startHour'];
        $startMin = $row['startMin'];
        $endHour = $row['endHour'];
        $endMin = $row['endMin'];
        $i      = 0;
        $days   =   array('Everyday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
        $select = '<span><select name="day[]">';

        while($i <= 7){
            if($i == $day){
                $selected   =   'selected="selected"';
            }
            else{
                $selected   =   '';
            }
            $select =   $select.
            '<option value="'.$i.'"'.$selected.'>'.$days[$i].'</option'>
            $i++;
        }
        $select =   $select.'</select>';
        echo $select;
        //Please ignore this below
        "<br>start : " . $startHour . "." . $startMin . 
        "<br>end : " . $endHour . "." . $endMin . 
        "<br><br>";
    } 
}
else {
}
?>

我希望这能有所帮助。