我已经没有这个类作业的想法了。我必须使用PHP_SELF创建两个PHP表单,并且我应该使用javascript或jquery在表单之间切换。我试过使用
<a href="#" onclick="document.getElementById('form1').style.display = 'block'; document.getElementById('form2').style.display = 'hidden';">Form 1</a>
<a href="#" onclick="document.getElementById('form1').style.display = 'hidden'; document.getElementById('form2').style.display = 'block';">Form 2</a>
这确实可以更改表单,但是当我点击提交按钮时,表单会返回到表单1,并且不会显示结果。我必须弄清楚的是,在使用PHP_SELF提交表单后,如何让它停留在该表单上,以显示服务器生成的结果。
您需要使用类似的东西
if($_POST){
//display success message here
}else{
//display form here
}
您可以在表单中添加一个名为formId
的隐藏字段,并让PHP回显它,这样您就可以从Javascript中知道您正在读取哪个表单的结果:
<?php
...
if (isset($_POST['formId']))
{
$show = 'form1' == $_POST['formId'] ? 'form1' : 'form2';
$hide = 'form1' == $_POST['formId'] ? 'form2' : 'form1';
// This PHP must be inside the Javascript section of the page, at end.
print <<<SETVISIBILITY
'$('#$show').style.display = 'block'; // Should be unnecessary (?)
'$('#$hide').style.display = 'hidden';
SETVISIBILITY;
}
?>
或者,你可以在jQuery中完成提交和结果显示,这样你就不必重新加载页面,失去表单的可见性。