<form id="enter" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="post" onsubmit="return validateForm(this);" >
<p>
<input id="submitBtn" name="submitDetails" type="submit" value="Submit Details" onClick="myClickHandler(); return false;" />
</p>
</form>
<script type="text/javascript">
function myClickHandler(){
if(validation()){
showConfirm();
}
}
</script>
<?php
session_start();
$outputDetails = "";
$outputDetails .= "<table id='sessionDetails' border='1'>
<tr>
<th>Number of Sessions:</th>
<th>{$_POST['sessionNum']}</th>
</tr>";
$outputDetails .= "</table>";
echo $outputDetails;
?>
以上是我的表单的代码。我想做的是,如果用户提交表单,那么它将返回到自己的页面。但是,如果"SessionNum"等于"1",那么它不应该将表单发布到自己,而应该发布表单,或者换句话说,导航到"session_marks.php"页面,但它不是idng,如果sessionNum等于1,那么它仍然提交表单或导航回自己的页面,我做错了什么?
另外,假设它显示sessionNum的数字,然后我提交表单,它将表单提交回自身,数字消失,我如何保持向自己提交表单时显示的数字?
谢谢
更改表单帖子目标的条件逻辑在哪里? 我在form
标签中看到的只是:
action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"
这将始终将form
的action
设置为当前PHP文件,而不是任何其他PHP文件。 如果要有条件地发布到其他文件,则需要在其中添加条件逻辑。 像这样的东西(虽然可能有更好的方法可以做到这一点,但请记住,我对 PHP 非常不熟悉(:
action="<?php $_POST['sessionNum'] == 1 ? echo 'session_marks.php' : echo htmlentities($_SERVER['PHP_SELF']); ?>"
至于数字消失,我没有看到任何名为sessionNum
的表单元素。 如果没有这样的表单元素,那么$_POST['sessionNum']
中将没有任何内容,因此数字将"消失",因为没有要显示的值。
如果上面是你的实际代码,session_start((; 必须放在任何其他输出(html,php的echo,print等(之前。