如何解决在INSERT语句中添加禁用的下拉元素
这个question已有8年以上的历史了。 现在,对于CakePHP 4.1.x,我想知道此[ annoying ]限制是否已更改,例如,程序员可以 instruction CakePHP添加{ {1}}字段插入 disabled
语句中。我正在研究文档,但没有找到任何东西。
我是什么意思:
表INSERT
与user_comments
引用表user_id
。 users
表单具有user_comments
的下拉控件,该控件提供 user_id
项以供选择。
对于“ 添加”操作,可以很容易地确定下拉菜单中显示/预选的条目,只需为“ users.name
”选项分配现有的default
值即可在id
表中。这一切都在users
函数中完成。
但是下拉列表中$this->Form->control()
的预选值必须不进行更改,并且在user_id
语句中显然需要。
制作下拉元素INSERT
并不是解决方案,因为仍然可以更改其选择。确保不能更改下拉菜单中所选项目的唯一方法是将其设置为readonly
。现在这就是问题所在,因为disabled
语句中未包含disabled
控件,并且INSERT
失败了,因为INSERT
字段不在{{ 1}},并且在user_id
表中是必需的。
我希望有人能理解我要表达的内容。
我的问题
CakePHP> = 4.1是否提供了一个在 entity
中包含user_comments
字段的选项?
浏览器是否可以提交disabled
字段?
更新:
Greg指出,这与CakePHP无关,所以我更新了问题。
解决方法
当前我正在使用这种方法:
我有一个一个 PHP脚本,可以动态生成50张桌子的个性化表格。在此脚本中,添加下面的JQuery代码,该代码在单击submit
按钮时执行。这段代码将disabled
属性设置为false
-很简单。
显然,这足以使CakePHP将该字段添加到 entity
中。可能有一个更优雅的解决方案。
更新:
Greg指出,是浏览器忽略了disabled
元素。删除浏览器的disabled
属性 ,然后提交输入元素。与CakePHP无关。
以下代码的图例:
$foreignKey
例如-指我的问题-值user_id
。我在id
函数中用$formId
设置了$this->Form->create()
形式的标签,因为我需要JQuery。该代码位于创建表单的PHP脚本的末尾。
$dasherize = Inflector::dasherize($foreignKey);
$submitInjection = "$('#{$formId}').submit( function() {
$('#{$dasherize}').prop('disabled',false);
});
";
echo $this->Html->scriptBlock($submitInjection,['block' => 'script']);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。