jquery在表单之间切换

jquery toggle between forms

本文关键字:之间 表单 jquery      更新时间:2023-09-26

我已经没有这个类作业的想法了。我必须使用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中完成提交和结果显示,这样你就不必重新加载页面,失去表单的可见性。