我有一个表单,其中包含只应为某些用户类型读取的字段。现在,我将此代码添加到每个字段:
<?php if($_SESSION['userFlag'] == 2 || $_SESSION['userFlag'] == 3) { ?> readonly <?php } ?>
这有效,还有一些隐藏变量可以确保数据仍然写入数据库,但我想知道是否有更快的方法来锁定这些字段。我的应用程序中的一个表单有近百个字段,能够在没有这么多重复的情况下执行此操作会很好。
答案 0 :(得分:1)
您不应该对每一行执行检查。尝试将值赋给变量:
<?php
if($_SESSION['userflag'] === 2 || $_SESSION['userflag'] === 3){
$readonly = ' readonly';
}
?>
然后在您的HTML上添加该行:
<input type="text"<?php echo $readonly; ?> />
如果该标志不是2
或3
,则它只是空白,但如果是,那么它将打印readonly
。这样您只需在顶部执行一次检查。
另一个可能的改进是使用in_array
,它返回一个布尔值:
<?php
$readOnlyFlags = array(2,3);
if(in_array($_SESSION['userflag'],$readOnlyFlags)){
$readonly = ' readonly';
}
?>
通过这种方式,您可以轻松更改或添加符合readonly
条件的标记,并且还可以提高性能。