Manage AJAX request data in a CakePHP controller
我正试图从CakePHP控制器访问AJAX请求的数据,但是一旦我进入控制器,就无法理解表单的数据在哪里。
在我的视图内,在表单标签之间,我有以下代码:
1 2 3 4 5 6 7 8 9 10 11 | echo $this->Js->submit( 'Proceed', array( 'url' => array( 'controller' => 'json', 'action' => 'itemSelection' ), 'dataType' => 'json', 'id' => 'proceed', 'success' => 'onSuccessFunct( data )' )); |
这将导致以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $(document).ready(function (){ $("#proceed").bind("click", function(event){ $.ajax({ data:$("#proceed").closest("form").serialize(), dataType:"json", success:function (data, textStatus) { onSuccessFunct( data ) }, type:"post", url:"\\/koro\\/json\\/itemSelection" }); return false; }); }); |
这部分似乎工作正常,单击完成请求,调用成功函数,问题是我不了解如何在控制器中处理表单的数据。
控制器的代码只是循环遍历表的行,将表单数据与表数据进行比较,然后将其存储在另一个变量中,然后以JSON的形式返回。在继续执行该函数的代码之前,先调用
总结:
- CakePHP是否有一个默认变量在其中存储来自AJAX请求的序列化格式的数据?
- 如果不是,则此数据在常规AJAX请求中存储在哪里?如何将其重定向到我选择的变量? (对不起,此AJAX noob后续活动)
不用多说,欢迎任何评论/答案,在此先感谢
PD:该代码经过测试,并且处于AJAX之前的状态(我通过发布请求处理所有内容)时可以正常工作。为了顺序和可用性,我昨天才开始将其迁移到AJAX。
如果数据作为查询字符串发送,则很可能进入
感谢Kai的友好建议。尝试进行这些调试时,始终会返回空的对象和数组,
我终于正确地模拟了这里发布的内容。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | $data = $this->Js->get('#formName')->serializeForm(array('isForm' => true, 'inline' => true)); $this->Js->get('#formName')->event( 'submit', $this->Js->request( array('action' => 'itemSelection', 'controller' => 'json'), array( 'data' => $data, 'async' => true, 'dataExpression'=>true, 'success' => 'onSuccessFunct( data )', 'method' => 'POST' ) ) ); |
我认为发送数据时存在一些问题,并将旧代码与现在可以运行的代码进行比较,我想知道如果我只添加了
如果有人愿意提供一个,我想得到进一步的解释,但是我要解决的问题。