在 CakePHP 中保存多行表格
Posted
技术标签:
【中文标题】在 CakePHP 中保存多行表格【英文标题】:Multiple rows with forms to save in CakePHP 【发布时间】:2013-12-06 00:17:14 【问题描述】:我目前正在开发一个投标系统,我一直在保存中标号码和金额。顺便说一下,这是 cakephp 2.4。当我在编辑值后提交投标时,它将(取决于解决方案)创建一个没有信息的新记录,或者只是刷新而不做任何事情。我尝试了几种不同的方法将 id 添加到表单中,但这似乎没有帮助(这是最常见的错误)。
我觉得我真的错过了一些东西,而且我对蛋糕还是很陌生,所以我不确定它是什么。
视图中发生了什么:我为我的表格的每个吐出行进行了分页。每一行都是这样的
<tr>
<td><a href="/kBid/bids/assign/2001">2001</a> </td>
<td>Wee love basket </td>
<form action="/kBid/bids" id="BidIndexForm" method="post" accept-charset="utf-8">
<div style="display:none;"><input type="hidden" name="_method" value="POST"/></div>
<td><div class="input number"><input name="data[Bid][winningBidder]" value="0" type="number" id="BidWinningBidder"/></div> </td>
<td><div class="input number"><input name="data[Bid][winningAmount]" value="0" type="number" id="BidWinningAmount"/></div> </td>
<td>
<input type="hidden" name="data[Bid][id]" value="2001" id="BidId"/><button class="button" style="color: #FFF;" type="submit">Save</button> </td>
</tr>
还有我的控制器来保存/查看项目:
public function index($id = null)
if ($this->request->is('post'))
$this->Bid->id = $this->request->data['Bid']['id'];
if($this->Bid->save($this->request->data))
$this->Session->setFlash('Bid assigned!');
return $this->redirect(array('action' => 'index'));
$this->Paginator->settings = $this->paginate;
$this->Bid->recursive = 0;
$this->set('bids', $this->paginate());
我已经尝试了大约 2 个小时,现在有很多“解决方案”,但到目前为止都没有奏效。一页上有多个表单是否有问题?当我查看源代码时,它们中的每一个都有单独的 ID,所以只要它们被传递,我就看不到问题。
除了我试图在视图末尾转储 sql 但它只给我它用来选择要显示的行的 sql。
真的很感谢任何建议,或者我是否应该以不同的方式来做这件事?谢谢!
【问题讨论】:
【参考方案1】:请仔细检查您的代码。看一眼你的代码。 :
您的表单标签未关闭。 (使用表单助手来创建表单,而不是对 html 进行硬编码)【讨论】:
感谢您的观看!当我使用表单元素并显示它们时,$this->Form->end();
不在循环中。我非常感谢您的帮助,现在它正在工作并且可以通过该修复来完成。以上是关于在 CakePHP 中保存多行表格的主要内容,如果未能解决你的问题,请参考以下文章