我爲開始時間選擇和結束時間創建一個下拉列表。我有3個數組,time_group,time_name和dotw。最終的結果是這樣的:PHP從數組項目創建變量
星期一[下拉列表] - [下拉列表]
週二[下拉列表] - [下拉列表]
週三[下拉列表] - [下拉列表] 等等等等
我想在實際頁面上使用預設變量檢查一個sql行。
$char_avail_start_monday = $row['char_avail_start_monday'];
$char_avail_stop_monday = $row['char_avail_stop_monday'];
中度過每一天我下面循環的代碼
現在,創造每一個與每個正確的值兩個下拉菜單中。然而,我有一個IF語句,如果db單元格爲空,則執行X,if = to Y做某事等等。看起來我的編碼工作不正確。我創建了$ {char_avail_start _}。$ dotw [$ d](例如:$ char_avail_start_monday),它並不指向我想要查看的預定義行。
//this is using my previous variable
echo "row has ".$char_avail_start_monday ." ";
//this is using my attempt at generating it and seeing it it can pull from the row
echo "row has " .${char_avail_start_}.$dotw[$d] ." <br/>";
我得到的輸出是:
「行有2000行有星期一」
這似乎只是$ dotw [$ d]部分。我想不可能做什麼?或者我只是做錯了?
的完整代碼:
<?php
//CREATE START TIMES ARRAY
$time_group = array('0000', '0030', '0100', '0130', '0200', '0230', '0300', '0330', '0400', '0430', '0500', '0530', '0600', '0630', '0700'
, '0730', '0800', '0830', '0900', '0930', '1000', '1030', '1100', '1130', '1200', '1230', '1300', '1330', '1400', '1430', '1500', '1530'
, '1600', '1630', '1700', '1730', '1800', '1830', '1900', '1930', '2000', '2030', '2100', '2130', '2200', '2230', '2300', '2330');
//CREATE FORMATED TIME ARRAY
$time_name = array('Midnight', '12:30 AM', '01:00 AM', '01:30 AM', '02:00 AM', '02:30 AM', '03:00 AM', '03:30 AM', '04:00 AM', '04:30 AM', '05:00 AM', '05:30 AM', '06:00 AM', '06:30 AM', '07:00 AM'
, '07:30 AM', '08:00 AM', '08:30 AM', '09:00 AM', '09:30 AM', '10:00 AM', '10:30 AM', '11:00 AM', '11:30 AM', 'Noon', '12:30 PM', '01:00 PM', '01:30 PM', '02:00 PM', '02:30 PM', '03:00 PM', '03:30 PM'
, '04:00 PM', '04:30 PM', '05:00 PM', '05:30 PM', '06:00 PM', '06:30 PM', '07:00 PM', '07:30 PM', '08:00 PM', '08:30 PM', '09:00 PM', '09:30 PM', '10:00 PM', '10:30 PM', '11:00 PM', '11:30 PM');
$dotw = array('monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday');
?>
<table width="425" border="0">
<?
//Loop through the days of the week *DOTW* array
$d = 0;
while ($d <= 6) {
?>
<tr>
<?php
//echo "test: " .${char_avail_start_}.$d;
if (${char_avail_start_}.$d == ""){
echo "<td width=\"190\" scope=\"col\"><span style=\"color: red\"><b>".ucfirst($dotw[$d])."</b></span></td>";
} else {
echo "<td width=\"190\" scope=\"col\">".ucfirst($dotw[$d])."</td>";
}
?>
<td scope="col">
<?php
//here is my test code to see if its defined
if (${char_avail_start_}.$dotw[$d] == "2000"){
echo "2000 FOUND\n";
} else {
//this is using my previous variable
echo "row has ".$char_avail_start_monday ." ";
//this is using my attempt at generating it and seeing it it can pull from the row
echo "row has " .${char_avail_start_}.$dotw[$d] ." <br/>";
}
echo "<select name=\"char_avail_start_".$dotw[$d]."\" id=\"char_avail_start_".$dotw[$d]."\">\n";
//FIRST BLANK OPTION
if (${char_avail_start_}.$d == ""){
echo "<option value=\"\" selected=\"selected\"></option>\n";
} else {
echo "<option value=\"\"></option>\n";
}
$i = 0;
while ($i <= 47) {
echo "<option value=\"".$time_group[$i]."\">".$time_name[$i]."</option>\n";
$i++;
}
echo "</select>\n";
echo "-\n";
echo "<select name=\"char_avail_stop_".$dotw[$d]."\" id=\"char_avail_stop_".$dotw[$d]."\">\n";
//FIRST BLANK OPTION
if (${char_avail_stop_}.$d == ""){
echo "<option value=\"\" selected=\"selected\"></option>\n";
} else {
echo "<option value=\"\"></option>\n";
}
$i = 0;
while ($i <= 47) {
echo "<option value=\"".$time_group[$i]."\">".$time_name[$i]."</option>\n";
$i++;
}
echo "</select></td></tr>\n";
$d++;
}
?>
</table>
順便說一句:通過使用短標籤('<?'),您正在尋求麻煩。 –
如果配置一次,將不會有套路。 – Anton