Meta_box:<已禁用输入>的UPDATE_POST_META

时间:2015-01-04 作者:inno.vlad

我有代码(将自定义字段添加到后期编辑页面):

    case \'text\':
        echo \'<input type="text" name="\', $field[\'id\'], \'" id="\', $field[\'id\'], \'" value="\', $meta ? $meta : $field[\'std\'], \'" size="30" style="width:97%" />\', \'<br />\', $field[\'desc\'];
        break;
我使用以下功能保存它:

foreach ($meta_box[\'fields\'] as $field) {
    $old = get_post_meta($post_id, $field[\'id\'], true);
    $new = $_POST[$field[\'id\']];
    if ($new && $new != $old) {
        update_post_meta($post_id, $field[\'id\'], $new);
    } elseif (\'\' == $new && $old) {
        delete_post_meta($post_id, $field[\'id\'], $old);
    }
一切正常。因此,如果字段值存在,则显示在字段值处,如果不存在,则使用新值更新此字段(添加到DB)。

当我想通过系统增加价值,而用户无法编辑它时,麻烦就来了。所以我把第一个代码改为(add disabled):

<input type="text" disabled name="\'
现在用户无法编辑。

在编辑后加载时,此字段中有默认值(确定),但doesn\'t save value to DB. $new = $_POST[$field[\'id\']]; 现在是空的。

有人知道怎么解决吗?

非常感谢。

1 个回复
最合适的回答,由SO网友:Михаил Семёнов 整理而成

disabled 无法按原样提交字段。

改变disabledreadonly 它将提交。

结束