2013-02-27 29 views
0

我有一个PresentationsController它处理一些POST操作表单。在这种形式I具有诸如与演示数据:并非所有POST数据都由Cake收到/处理

<input name="data[Presentation][title]" class="init-focus span4" type="text" id="PresentationTitle" required="required"> 

和这些字段由控制器正确处理。但是PresentationModel hasMany Subject。所以我想在表格中包含一些演示主题。我这样做是这样的:

<input name="data[Subject][0][subject]" disabled="disabled" class="subject" maxlength="255" type="text" id="Subject0Subject" required="required"> 
<input name="data[Subject][1][subject]" disabled="disabled" class="subject" maxlength="255" type="text" id="Subject0Subject" required="required"> 

但是,这些数据不被处理的蛋糕 - 我在控制器试图var_dump($this->request->data)但他们缺少...由于某种原因,蛋糕会忽略这些数据...


我生成输入dynamicalyy与jQuery但输入正确添加到形成 - 我可以看到他们在我的浏览器的HTML元素观众:

<input name="data[Subject][0][subject]" maxlength="255" type="text" id="Subject0Subject" required="required"> 
<input name="data[Subject][1][subject]" disabled="disabled" class="subject" maxlength="255" type="text" id="Subject0Subject" required="required"> 

以上是我在HTML视图元素查看器 - 第一个输入是从php添加“内联”,第二个是用jquery动态添加的。 POST后只有第一个可见。

+0

为什么你不使用FormHelper的任何特定原因? – Oldskool 2013-02-27 19:13:06

+0

那么我使用窗体帮助器。但是对于一个“模板” - 我用jquery复制它以在我的表单中添加许多动态输入 - 我只是在输入名称中更改[n]索引。输入被正确添加到表单中,因为我可以在浏览器(Chrome)html元素树中看到它们。但那些增加dynamicaly不发送... – user606521 2013-02-27 19:17:13

+0

假设您使用某种for循环来设置这些,你仍然可以使用窗体帮助器。将它们命名为'Subject。'。$ i。'subject'基本上,这将返回可以自动保存的[Subject] [$ i] [subject]的数组。 – iexiak 2013-02-27 19:22:32

回答

3

当您将输入设置为disabled="disabled"时,它不会被提交。这适用于普通的HTML,并不是CakePHP特有的。

根据W3Schools.com:

在表单中禁用的元素不会被提交。

+0

Yeass,多数民众赞成在此谢谢 - 是否有任何其他选项显示输入是不可编辑的用户,但张贴在窗体? – user606521 2013-02-27 19:24:44

+1

只读:http://www.w3schools.com/tags/att_input_readonly.asp – Dave 2013-02-27 19:28:59

相关问题