在这个表单上,我有一些输入字段和一些用户不应该编辑的选择框。
但是,无论如何,我都需要插入那些无法插入的字段。
我正在考虑将这些值传递到一个隐藏字段(这应该在js中完成吗?);并使用这些隐藏字段提交表单。
这是一个好方法吗?请提供建议。
您可以使用隐藏字段将数据传递到表单中,但请记住,如果有人计划恶作剧,他们可以使用Firebug等工具编辑值并提交,因此依赖隐藏字段可能会导致问题。
如果你想保持适当的安全,你必须在服务器端做所有的事情——检查客户端在提交表单时是否有权访问这些字段。如果有,就取他们提交的值;否则,请使用存储在PHP代码中的默认值。
只需将它们放入隐藏字段:
echo $form->hiddenField($model,'property');
只需在表单中使用隐藏的假动作,如下所示:
<input type="hidden" name="id" value="00001" />
不需要js。
我会在复选框上禁用,可能在文本字段上只读。问题是,当他们被提交时,你知道他们应该有什么价值。所以在服务器端,您可以忽略它们并使用您选择的值。如果有人在操纵发布请求,则忽略数据。