我想創建2個下拉菜單。一個用於顯示建築物列表,然後當用戶從列表中選擇建築物時,它將顯示該建築物中的房間列表。我在php中得到一個未定義的錯誤
問題是我在我的代碼中有錯誤。下面是代碼:
$sql="SELECT Building, Room FROM Room WHERE Building = '".$building."'";
$sqlresult = mysql_query($sql);
$sqldataArray = array();
while($sqlrow = mysql_fetch_array($sqlresult))
{
$sqldataArray[$sqlrow['Building']];
$sqldataArray[$sqlrow['Building']]['Rooms'][$sqlrow['Room']];
}
$buildingHTML = "";
$buildingHTML .= '<select name="buildings" id="buildingssDrop">'.PHP_EOL;
$buildingHTML .= '<option value="">Please Select</option>'.PHP_EOL;
foreach ($sqldataArray as $building => $buildingData) {
$buildingHTML .= "<option value='".$building."'>" . $building . "</option>".PHP_EOL;
}
$buildingHTML .= '</select>';
$roomHTML = "";
$roomHTML .= '<select name="rooms" id="roomsDrop">'.PHP_EOL;
$roomHTML .= '<option value="">Please Select</option>'.PHP_EOL;
foreach ($buildingData['Rooms'] as $roomId => $roomData) {
$roomHTML .= "<option value='".$roomId."'>" . $roomId . "</option>".PHP_EOL;
}
$roomHTML .= '</select>';
我得到的錯誤是這樣的:
未定義的變量:buildingData在/web/stud/u0867587/Mobile_app/create_session.php線372
這是代碼行的錯誤是:
$buildingHTML .= "<option value='".$building"'>" . $building . "</option>".PHP_EOL;
有誰知道如何解決這個錯誤。我相信這是因爲它不在其他foreach循環中,但是如果我將它放入,那麼是否會影響下拉菜單的顯示?
你確定這是正確的嗎?我沒有在該行中看到任何'$ buildingData'。 – entropid 2012-01-26 22:54:18
你對數組中的'Rooms'元素有正面評價嗎? print_r($ buildingData)來檢查它的內容。 – Alfabravo 2012-01-26 22:54:33
錯誤發生在下一個foreach行,他試圖訪問聲明之前的foreach範圍之外的'$ buildingData'。 – Tim 2012-01-26 22:58:16