将禁用的下拉元素添加到 INSERT 语句中
Adding disabled drop-down element into the INSERT statement
这个question已经8岁多了。 现在,有了 CakePHP 4.1.x,我想知道这个 [ 烦人的 ] 限制是否已经改变,例如程序员可以 指示 CakePHP 将disabled
字段添加到INSERT
语句中。我正在研究文档,但没有找到任何东西。
什么意思:
tableuser_comments
指的是user_id
tableusers
。 user_comments
表单有一个 user_id
的下拉控件,它 提供 users.name
个条目供选择。
对于“add”操作,下拉列表中的 shown/pre-selected 条目可以很容易地确定,将“default
”选项分配给 id
值存在于 users
table 中。这些都是在 $this->Form->control()
函数中完成的。
但是下拉列表中 user_id
的预选值必须 NOT 更改并且在 INSERT
声明中明确需要。
制作下拉元素 readonly
不是解决方案,因为它的选择仍然可以更改。确保下拉列表中的所选项目无法更改的唯一方法是将其设置为 disabled
。这就是现在的问题,因为 disabled
控件未包含在 INSERT
语句中,并且 INSERT
失败,因为 user_id
字段不在 entity
并且 user_comments
table.
中需要它
希望有人明白我想表达的意思
我的问题:
CakePHP >= 4.1 是否提供在 entity
中包含 disabled
字段的选项?
浏览器是否可以提交 disabled
字段?
更新:
正如 Greg 所指出的,这与 CakePHP 无关,所以我更新了我的问题。
目前我正在使用这种方法:
我有 一个 PHP 脚本,可以为 50 个表格即时生成个性化表格。在这个脚本中,我添加了下面的 JQuery 代码,当 submit
按钮被点击时,它会被执行。此代码将 disabled
属性 设置为 false
- 就这么简单。
显然,CakePHP 将此字段添加到 entity
中就足够了。可能有更优雅的解决方案。
更新:
正如 Greg 所指出的,浏览器 忽略了 一个 disabled
元素。删除 disabled
属性 让 浏览器然后提交输入元素。与蛋糕无关PHP.
下面代码的图例:
例如,$foreignKey
- 参考我的问题 - 值 user_id
。我在 $this->Form->create()
函数中使用 $formId
设置了表单 id
标记,因为我需要 JQuery。此代码位于创建表单的 PHP 脚本的末尾。
$dasherize = Inflector::dasherize($foreignKey);
$submitInjection = "$('#{$formId}').submit( function() {
$('#{$dasherize}').prop('disabled', false);
});
";
echo $this->Html->scriptBlock($submitInjection, ['block' => 'script']);
这个question已经8岁多了。 现在,有了 CakePHP 4.1.x,我想知道这个 [ 烦人的 ] 限制是否已经改变,例如程序员可以 指示 CakePHP 将disabled
字段添加到INSERT
语句中。我正在研究文档,但没有找到任何东西。
什么意思:
tableuser_comments
指的是user_id
tableusers
。 user_comments
表单有一个 user_id
的下拉控件,它 提供 users.name
个条目供选择。
对于“add”操作,下拉列表中的 shown/pre-selected 条目可以很容易地确定,将“default
”选项分配给 id
值存在于 users
table 中。这些都是在 $this->Form->control()
函数中完成的。
但是下拉列表中 user_id
的预选值必须 NOT 更改并且在 INSERT
声明中明确需要。
制作下拉元素 readonly
不是解决方案,因为它的选择仍然可以更改。确保下拉列表中的所选项目无法更改的唯一方法是将其设置为 disabled
。这就是现在的问题,因为 disabled
控件未包含在 INSERT
语句中,并且 INSERT
失败,因为 user_id
字段不在 entity
并且 user_comments
table.
希望有人明白我想表达的意思
我的问题:
CakePHP >= 4.1 是否提供在 entity
中包含 disabled
字段的选项?
浏览器是否可以提交 disabled
字段?
更新:
正如 Greg 所指出的,这与 CakePHP 无关,所以我更新了我的问题。
目前我正在使用这种方法:
我有 一个 PHP 脚本,可以为 50 个表格即时生成个性化表格。在这个脚本中,我添加了下面的 JQuery 代码,当 submit
按钮被点击时,它会被执行。此代码将 disabled
属性 设置为 false
- 就这么简单。
显然,CakePHP 将此字段添加到 entity
中就足够了。可能有更优雅的解决方案。
更新:
正如 Greg 所指出的,浏览器 忽略了 一个 disabled
元素。删除 disabled
属性 让 浏览器然后提交输入元素。与蛋糕无关PHP.
下面代码的图例:
例如,$foreignKey
- 参考我的问题 - 值 user_id
。我在 $this->Form->create()
函数中使用 $formId
设置了表单 id
标记,因为我需要 JQuery。此代码位于创建表单的 PHP 脚本的末尾。
$dasherize = Inflector::dasherize($foreignKey);
$submitInjection = "$('#{$formId}').submit( function() {
$('#{$dasherize}').prop('disabled', false);
});
";
echo $this->Html->scriptBlock($submitInjection, ['block' => 'script']);