禁用或只读-一个选择框问题


Disable or Read-Only - a select box issue

在这个表单上,我有一些输入字段和一些用户不应该编辑的选择框。

但是,无论如何,我都需要插入那些无法插入的字段。

我正在考虑将这些值传递到一个隐藏字段(这应该在js中完成吗?);并使用这些隐藏字段提交表单。

这是一个好方法吗?请提供建议。

您可以使用隐藏字段将数据传递到表单中,但请记住,如果有人计划恶作剧,他们可以使用Firebug等工具编辑值并提交,因此依赖隐藏字段可能会导致问题。

如果你想保持适当的安全,你必须在服务器端做所有的事情——检查客户端在提交表单时是否有权访问这些字段。如果有,就取他们提交的值;否则,请使用存储在PHP代码中的默认值。

只需将它们放入隐藏字段:

echo $form->hiddenField($model,'property');

只需在表单中使用隐藏的假动作,如下所示:

<input type="hidden" name="id" value="00001" />

不需要js。

我会在复选框上禁用,可能在文本字段上只读。问题是,当他们被提交时,你知道他们应该有什么价值。所以在服务器端,您可以忽略它们并使用您选择的值。如果有人在操纵发布请求,则忽略数据。