<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”页面,但是如果sessionNum等于1那么它不是idng它仍然提交表单或导航回自己的页面,我做错了什么?
还可以说它显示了sessionNum的一个数字,然后我提交了表单并将表单提交回自身,数字消失了,如何在将表单提交给自己时显示数字?
由于
答案 0 :(得分:1)
更改表单帖子目标的条件逻辑在哪里?我在form
标记中看到的只有:
action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"
这将始终将form
的{{1}}设置为当前的PHP文件,而不是任何其他PHP文件。如果要有条件地发布到不同的文件,则需要在其中添加条件逻辑。这样的事情(虽然可能有更好的方法来做到这一点,但请记住,我非常在PHP的实践中):
action
至于消失的数字,我没有看到任何名为action="<?php $_POST['sessionNum'] == 1 ? echo 'session_marks.php' : echo htmlentities($_SERVER['PHP_SELF']); ?>"
的表单元素。如果没有这样的表单元素,那么sessionNum
中将没有任何内容,因此该数字将“消失”,因为没有值可以显示。
答案 1 :(得分:0)
如果以上是您的实际代码,session_start();必须放在任何其他输出之前(html,php的回声,打印等......)