【发布时间】:2015-08-31 20:33:20
【问题描述】:
我正在使用 CakePHP 2.3.8,我正在尝试使用来自 this tutorial 的动态添加的输入创建一个表单,但我遇到了一些问题。输入的添加和删除工作得很好,但是当我提交表单时,我收到一个黑洞错误消息。在检查输入时,似乎没有正确设置键值并导致输入的 id 出现一些问题。
例如,在元素中使用此代码
//Elements/users.ctp
$key = isset($key) ? $key : '<%= key %>';
<tr>
<td><?php echo $this->Form->input("Role.{$key}.user_id", array('options' => $users, 'label' => false)); ?></td>
<td class="actions">
<a href="#" class="remove">Remove User</a>
</td>
</tr>
这是生成的选择
<select name="data[Role][0][user_id]" id="Role<%=Key%>UserId">
编辑
在 /Elements/users.ctp 上正确设置了 $key 的值。我可以创建一行并回显 $key 的输出,并且该行的数字正确显示。上面可以看到,元素的名字设置正确,但是id还是设置的很奇怪。
选择元素的名称已正确设置,但 ID 未正确设置。
是什么导致选择 ID 为 Role<%=Key%>UserId 而不是 Role0UserId?
【问题讨论】:
-
“我正在尝试创建一个带有动态添加输入的表单......但是当我提交表单时,我收到一个黑洞错误消息” - 一般而言,这是行不通的。您不能将安全组件(不摆弄配置)与动态表单字段一起使用。不要使用表单助手来生成与 CakePHP 格式不匹配的输入(您正在尝试将变量注入 id - 而表单助手并非旨在这样做)。
标签: javascript php jquery cakephp