jquery - $form->setData() 以什么格式接受控制器中的表单数据
问题描述
问题是将表单数据从客户端发送到 Zend 控制器之一。我想使用 Form 的 isValid() 方法来验证表单。但它总是返回 false。我想我无法为 $formData->setData() 提供正确的格式数据。详情如下。
.....
var fData = $('#responsibleAddressForm').serializeArray();
$.ajax({
url: '/vvt/controller /storeResponsibleAddress',
data: fData,
type: 'POST',
dataType: 'json',
async: true,
success: function(controller) {
alert("in success!");
//$("#wpno-vvt-contacts").html(contactsHtml);
},
error : function(xhr, textStatus, errorThrown) {
alert('Ajax request failed.');
}
});
.....
But when I try to validate the form data on controller, as follows:
....
if($this->getRequest()->isPost())
{
// Fill in the form with POST data
$form = new ControllerForm($this->entityManager);
$view->setTerminal($request->isXmlHttpRequest());
$data = $this->params()->fromPost();
$form->setData($data);
// Validate form
if($form->isValid()) {
.....
isValid 始终为假。我假设它返回 false 因为我给出的 url 编码字符串不是 setData 接受的正确格式。现在,如果这是原因,那么 setData 可以接受的正确格式是什么,我如何得到它?
解决方案
修改声明为:
$data = $this->params()->fromPost();
至
$data = $this->params()->fromPost()->toArray();
或者这样做:
$form->setData($this->getRequest()->getPost());
推荐阅读
- python - #Python - 对不同用户的文本文件进行排名并添加他们的结果
- mysql - 将 Excel 数据导出到 MySQL 时遇到问题
- c# - 将 CSV 文件读取到 DataSet 的 C# EPPlus 问题
- typescript - 当只为类型导入包时,babel-loader / tsc 编译器如何知道不导入包?
- javascript - 等待后如何测试数据
- python - 在没有 setter 方法的情况下,Python“就地”重新分配可变对象
- rest - 有条件地为同一端点返回不同的 REST API 响应对象
- chromium - 将 Debian Buster 直接引导到 Chromium Kiosk
- html - 为什么我的 CSS 更改在 HTML 页面 (django) 中不可见?
- python - python和pip:陷入无休止的非安装循环