我有一个表单,其中包含已禁用的输入字段,但它保留了值。
我如何接受变量并插入。我试过了:
$value1 = $_POST['test'];
答案 0 :(得分:13)
你做不到。禁用的字段不会发布到您的服务器。只读字段,所以如果您确实需要该字段的内容,您可以将其更改为只读而不是禁用。
答案 1 :(得分:2)
你不能。
您可以做的最好的事情是使用某种default value
:
function post( $fieldName, $default = '' )
{
if( !isset( $_POST[ $fieldName ] ) )
{
return $default;
}
else
{
return $_POST[ $fieldName ];
}
}
$value1 = post('test', '0');
或者@Arjan说,将表单更改为readonly
:
<input type='text' name='test' readonly="readonly" />
答案 2 :(得分:1)
这就是disabled
属性的工作原理。禁用表单控件后,在提交表单时将忽略该值,并且该密钥将不会出现在$_POST
(或$_GET
)中。
如果您希望该值存在于提交的数据中,但您不希望用户能够更改页面上的值(我想象的是您要实现的目标),请使用{{1而不是readonly="readonly"
。
修改强>
disabled="disabled"
元素没有<select>
属性。上述信息仍然有效,因为将适用于readonly
和<input>
s。
此处问题的解决方案是禁用选择并使用隐藏输入将值发送回服务器 - 例如
启用选择时:
<textarea>
......当它被禁用时:
<select class="txtbx1" name="country">
<!-- options here -->
</select>
但主要的是当我更改选择字段时如何设置这些隐藏字段。以及如何设置提交表单时间。 ?