我的提交有问题。假设我有两个评估:
- FGTRE1
- FGTRE2
假设发生的是用户将首先完成评估 1,提交评估 1,然后他们将被导航到同一页面,但这次它显示评估 2 的详细信息。要知道评估是如何更改的,我有这行代码显示页面的标题:
<h1>ASSESSMENT (<?php echo $assessment ?>) <?php echo $sessionMinus ?> OF <?php echo $_SESSION['initial_session'] ?></h1>
因此,它显示的第一个评估是:
评估 (FGTRE1) 1 / 2
第二次评估应显示:
评估 (FGTRE2) 2 的 2
我遇到的问题是当用户成功提交第一个评估时,它不会继续显示第二个评估,它仍然显示第一个评估的详细信息。
看了下面的代码,我的疑问是,为什么第一次测评提交成功后,页面没有加载第二次测评内容,而是仍然显示了第一次测评内容?
我确实包含了 php 错误报告,并且没有 php 错误,并且错误控制台中也没有 javascript 错误:
PHP:
<?php
session_start();
if (isset($_POST['id'])) {
$_SESSION['id'] = $_POST['id'];
}
if(isset($_SESSION['sessionNum'])){
//Declare my counter for the first time
$_SESSION['initial_session'] = $_SESSION['sessionNum'];
$_SESSION['sessionNumber'] = intval($_SESSION['sessionNum']);
$_SESSION['sessionCounting'] = 1;
} elseif (isset($_POST['submitMarks']) && $_SESSION['sessionCounting'] < $_SESSION['sessionNumber']) {
$_SESSION['sessionCounting']++;
}
$sessionMinus = $_SESSION['sessionCounting'];
$sessionConcat = $_SESSION['sessionCounting'];
if ($sessionMinus == $_SESSION['initial_session']){
$action = 'penalty.php';
} elseif($sessionMinus != $_SESSION['initial_session']){
$action = $_SERVER['PHP_SELF'];
}
$assessment = $_SESSION['id'];
if ($_SESSION['initial_session'] > 1) {
$assessment .= $sessionConcat;
}
?>
HTML:
<body>
<form id="Marks" action="<?php echo htmlentities($action); ?>" method="post">
<h1>ASSESSMENT (<?php echo $assessment ?>) <?php echo $sessionMinus ?> OF <?php echo $_SESSION['initial_session'] ?></h1>
<input id="submitBtn" name="submitMarks" type="submit" value="Submit Marks" />
</form>
</body>
查询:
$(function() {
...
myClickHandler = function(e) {
var ng = $('#num_groups').val();
for (var group = 1; group <= ng; group++) {
if (!validation(group)) return false;
}
if (confirm("Are you sure you want to Proceed?" + "\n")) {
$.ajax({
url: "insertmarks.php",
data: $("#Marks").serialize(),
async: false,
type: "POST"
});
return true;
} else {
return false;
}
};
$('#Marks').submit(myClickHandler);
});
});