2016-05-09 32 views
3

我想根據數據庫中記錄的內容顯示包含所選日期的下拉菜單。爲每行數據動態更改下拉列表的選中狀態

是否有任何有效的方法根據記錄的數據動態更改下拉菜單的選定狀態?

謝謝

注:

  • 會有很多下拉菜單(S)如果以下clinicID的記錄一天超過一排

  • 的$天一個整數,1爲星期日,2爲星期一等等

這是mycode

// 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 { 
    } 
+0

嗨。如果這是新代碼,請使用PDO或MySQLi。 mysql已折舊,不應在新代碼上使用 http://php.net/manual/en/function.mysql-query.php 嘗試此鏈接,它幫助了我很多:phpdelusions.net/pdo by @你的,常識性的。 – MDChaara

回答

1

如果這是新代碼,請使用PDO或MySQLi。 mysql已折舊,不應在新代碼上使用php.net/manual/en/function.mysql-query.php嘗試此鏈接,它幫助了我很多:phpdelusions.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 { 
} 

?> 

我希望這有助於。

+0

完美的作品。非常感謝! – incbrown