0

我有一个表单,其中包含应该只读某些用户类型的字段。现在,我将此代码添加到每个字段:

<?php if($_SESSION['userFlag'] == 2 || $_SESSION['userFlag'] == 3) { ?> readonly <?php } ?>

这与一些隐藏变量一起工作,以确保数据仍被写入数据库,但我想知道是否有更快的方法来锁定这些字段。我的应用程序中的一个表单有将近一百个字段,如果能够做到这一点而无需太多重复,那就太好了。

4

1 回答 1

1

您不应该对每一行都进行检查。尝试将值分配给变量:

<?php
    if($_SESSION['userflag'] === 2 || $_SESSION['userflag'] === 3){
        $readonly = ' readonly';
    }
?>

然后在您的 HTML 上添加该行:

<input type="text"<?php echo $readonly; ?> />

如果标志不是23,它将只是空白,但如果是则它将打印readonly。这样,您只需在顶部执行一次检查。

另一个可能的改进是使用in_array,它返回一个布尔值:

<?php
    $readOnlyFlags = array(2,3);

    if(in_array($_SESSION['userflag'],$readOnlyFlags)){
        $readonly = ' readonly';
    }
?>

通过这种方式,您可以轻松更改或添加符合readonly条件的标志,并且在性能方面也可能会更快一些。

于 2013-11-04T17:44:03.737 回答