我有一个电子邮件是可选的表格。要控制有一个复选框。如果未选中该复选框,则电子邮件文本框将被禁用,因此不会在提交时发布。但是,在下一页上,如果我有如下所示的代码,则在禁用电子邮件文本框的情况下会给我一个错误。

if (isset($_POST['submit']))
{
    $_SESSION["email"]      = $_REQUEST['YourEMail'];
    ....
}


为了解决该问题,除了将其值设置为空字符串外,我还在提交前以编程方式启用了禁用的电子邮件文本框。如下所示。

document.getElementById('YourEMail').disabled = false
document.getElementById('YourEMail').value = ''


但是,一个烦人的问题仍然存在,那就是,如果用户返回到原始页面,则会启用电子邮件文本框,因为在提交表单之前我有问题地启用了该文本框。但是,在这种情况下,我希望将其禁用。我该如何实现?或者,如何在下一页中看到该电子邮件被禁用,因此甚至不尝试阅读$_REQUEST['YourEmail']

最佳答案

如果“ #YourEMail”字段是可选的,则可以检查PHP中是否存在。无需使用JS启用/禁用该字段。

if (isset($_POST['submit']))
{
    if (isset($_REQUEST['YourEMail']) && !empty($_REQUEST['YourEMail'])){
        $_SESSION["email"] = $_REQUEST['YourEMail'];
    }
}

10-06 15:57