我在提交後顯示正確的細節時遇到問題。我認爲我的頁面結構不正確目前發生的情況是,如果我點擊Module
提交按鈕,則不會顯示任何錯誤信息。如何正確設置頁面結構
下面是什麼是假設發生:(頁工作在3個部分)
第1部分:包含模塊下拉菜單。用戶從下拉菜單中選擇選項並提交。每次提交時,都會更改第2部分和第3部分的內容。提交後,下拉菜單返回到請選擇選項。
第2部分:包含評估下拉菜單,僅在用戶提交第1部分後出現。當用戶從評估下拉菜單中選擇選項並單擊提交按鈕提交此部件時,下拉菜單返回請選擇並出現第3部分。第3部分每次更改第2部分都提交了不同的選項。
第3部分:顯示第2部分的詳細信息。僅根據從第2部分中選擇和評估的評估出現和更改。如果用戶從第1部分提交,則隱藏該部分。
現在我的嘗試是將PHP和phmtl彼此分開,但就像我說他的問題是沒有顯示任何細節。忍受我有很多代碼,但這是因爲我需要showw我的頁面是如何構造的。我的問題是我需要做什麼來修復頁面結構?
你可以看到什麼是這裏的應用程序發生的事情:Application
下面是它出現在它的順序顯示的代碼:(我試圖限制下來,盡我所能):
PHP:
<?php
// connect to the database
$moduleactive = 1;
$sql = "SELECT ModuleId, ModuleNo, ModuleName FROM Module WHERE ModuleActive = ? ORDER BY ModuleNo";
//excute query
$sqlnum = $sqlstmt->num_rows();
$moduleHTML = "";
$moduleHTML .= '<select name="modules" id="modulesDrop">' . PHP_EOL;
$moduleHTML .= '<option value="">Please Select</option>' . PHP_EOL;
while ($sqlstmt->fetch()) {
$moduleHTML .= sprintf('<option value="%1$s_%2$s_%3$s">%1$s - %2$s</option>' . PHP_EOL, $dbModuleNo, $dbModuleName, $dbModuleId);
}
$moduleHTML .= '</select>';
$pHTML = "";
//Module Submit (Part 1 Submitted)
if (isset($_POST['moduleSubmit'])) {
$sessionquery = "
SELECT s.SessionId, SessionName, SessionDate, SessionTime, ModuleId, SessionActive, Complete
FROM Session s
INNER JOIN Session_Complete sc ON sc.SessionId = s.SessionId
WHERE
(ModuleId = ? AND SessionActive = ? AND Complete = ?)
ORDER BY SessionName
";
$active = 1;
$complete = 1;
//execute query
$sessionnum = $sessionqrystmt->num_rows();
$sessionHTML = '';
if ($sessionnum == 0) {
$pHTML = "<span style='color: red'>Sorry, You have No Assessments under this Module</span>";
}
$sessionHTML = '<select name="session" id="sessionsDrop">' . PHP_EOL;
$sessionHTML .= '<option value="">Please Select</option>' . PHP_EOL;
while ($sessionqrystmt->fetch()) {
$sessionHTML .= sprintf("<option value='%s'>%s - %s - %s</option>", $dbSessionId, $dbSessionName, date("d-m-Y", strtotime($dbSessionDate)), date("H:i", strtotime($dbSessionTime))) . PHP_EOL;
}
$sessionHTML .= '</select>';
}
//Session Submit (Part 2 Submitted)
if (isset($_POST['sessionSubmit'])) {
$sessiondetailsquery = "
SELECT SessionId, SessionName
FROM Session
WHERE
(SessionId = ?)
";
//execute query
$sessiondetailsqrystmt->bind_result($detailsSessionId, $detailsSessionName);
}
?>
PHTML:
<form action="<?php
echo htmlentities($_SERVER['PHP_SELF']);
?>" method="post">
<table>
<tr>
<th>Module: <?php
echo $moduleHTML;
?></th>
</tr>
</table>
<p><input id="moduleSubmit" type="submit" value="Submit Module" name="moduleSubmit" /></p>
<?php
if ($step == 2) {
if (!$_POST['moduleSubmit']) {
if ($_POST['modules'] == '') {
?>
<span style='color: red'>Please Select a Module</span>
<?php
} elseif (!$sqlnum) {
?>
<span style='color: red'>Sorry, You have No Assessments under this Module</span>
<?php
} else {
?>
<p><strong>Assessments:</strong> {$sessionHTML} </p>
<p><input id='sessionSubmit' type='submit' value='View Assessment Details' name='sessionSubmit' /></p>
<?php
}
}
}
?>
<?php
if ($step == 3) {
if (!$_POST['sessionSubmit']) {
if ($_POST['session'] == '') {
?>
<span style='color: red'>Please Select an Assessment</span>
<?php
} else {
?>
<table>
<tr>
<td></td>
<td><input type='text' id='currentId' name='Idcurrent' readonly='readonly' value='$detailsSessionId' /></td>
</tr>
<tr>
<td><strong>Assessment:</strong></td>
<td>{$detailsSessionName}</td>
</tr>
</table>
<?php
}
}
}
?>
</form>
</body>
</html>
UPDATE:
Notice: Undefined index: modules in ...on line 66
Notice: Undefined offset: 1 in ... on line 68
Notice: Undefined offset: 2 in ... on line 69
Notice: Undefined index: modules in ... on line 116
PHP小提琴更新:http://phpfiddle.org/main/code/cbx-6mi
請測試您的代碼時,請保持您的瀏覽器的控制檯打開。你會看到你得到一個有用的錯誤。 'ReferenceError:getButtons沒有定義' –
+1對於jsfiddle –
@RuchitRami:所以+1如果這些問題絕對無用,如果這些鏈接斷裂?它超級,你喜歡jsFiddle,但StackOverflow不應該有依賴關係。 –