2012-06-11 149 views
0

我目前有两个下拉菜单和一个div。我的目标是能够使用div中第二个下拉列表的所选<option>中打印的变量。如图所示,我试图用数组来做到这一点。从while循环打印MySQL数据

这是我到目前为止有:

$items = array(); 

// converting day into the date of the next time that day occurs 

function getDateString($day) { 
     if (date("l") == $day) { 
      return date("D j M"); 
     } 
     else { 
      $date = strtotime("next $day"); 
      return date("D j M",$date); 
     } 
    } 

// populating the second dropdown 

    function getClubs() { 
    connect(); 

    date_default_timezone_set('Europe/London'); 

    $day = date("l"); 
    $time = date("G"); 

    if ($time >= 21) { 
     $day = date('l', strtotime($day .' +1 day')); 
     } 


    if ($day == Monday) { 
     $query = "SELECT * FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY')"; 
     } 

    else if ($day == Tuesday) { 
     $query = "SELECT name FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'MONDAY')"; 
     } 

    else if ($day == Wednesday) { 
     $query = "SELECT name FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'MONDAY', 'TUESDAY')"; 
     } 

    else if ($day == Thursday) { 
     $query = "SELECT name FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY')"; 
     } 

    else if ($day == Friday) { 
     $query = "SELECT name FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'FRIDAY', 'SATURDAY', 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY')"; 
     } 

    else if ($day == Saturday) { 
     $query = "SELECT name FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'SATURDAY', 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY')"; 
     } 

    else if ($day == Sunday) { 
     $query = "SELECT name FROM nights WHERE city = 'Cambridge' ORDER BY FIELD(day, 'SUNDAY', 'MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY')"; 
     } 


     $result = mysql_query($query); 
     $items = array(); 

     if($result && mysql_num_rows($result) > 0) { 
      while ($row = mysql_fetch_array($result)) { 
    //   $items[] = array($row['name']); 

    $name = $row['name']; 
    $day = $row['day']; 

// add these two to an array 

       array_push($items, $name, $day); 

       echo "<option>" . $name . " (" . getDateString($day) . ")</option>"; 

       }   
     } 
    } 

// populating div 

function printDetails() { 

// echo $name (as an example) from the array above 

    echo $items[0]; 
} 

回答

0

变化:

echo "<option>" . $name . " (" . getDateString($day) . ")</option>"; 

$dropdown .= "<option>" . $name . " (" . getDateString($day) . ")</option>"; 

然后里面你下来

<select><?=$dropdown;?></select> 

您正在回显代码中的选项标记,它以正在打印的HTML顺序存在。意思是,你在选择标签之外回显它。通过使用。=您将$ dropdown变量与循环中的其他选项连接起来。

在一天结束时,您的延期选项将存在于$下拉菜单中,您可以在页面的任何位置使用,无论您在何处放置它。

例如:

<div><?=$dropdown;?></div> 
<select><?=$dropdown;?></select> 

但要注意围绕每个项目的标签。

+0

你能解释一下这是什么吗?我正在寻找可以在div中回显的个人值(名称,日期等)。我的下一步是更新不同下拉选择时的div。 – Sebastian

+0

已更新的答案。 –

+0

感谢您的更新。我在其他地方尝试使用的是当前名称/天/等在下拉列表中选择。所以这里(http://comfyshoulderrest.com/guestvibe/index.php)它是在页面加载时选中的俱乐部,因此它可以打印在右侧薄而深灰色的div上。 – Sebastian