Ajax cakephp 3.x和datatable示例
我刚接触过cake PHP3.4,我正在尝试用ajax请求和datatable构建一个示例 这是我的控制器:Ajax cakephp 3.x和datatable示例,ajax,cakephp,datatable,cakephp-3.4,Ajax,Cakephp,Datatable,Cakephp 3.4,我刚接触过cake PHP3.4,我正在尝试用ajax请求和datatable构建一个示例 这是我的控制器: public function getdata(){ if ($this->request->is('ajax')) { $cc = array( array('nome'=>'parvez', 'cognome'=>'AA', 'email'=>'101'), array('nome'=>'
public function getdata(){
if ($this->request->is('ajax')) {
$cc = array(
array('nome'=>'parvez', 'cognome'=>'AA', 'email'=>'101'),
array('nome'=>'alam', 'cognome'=>'1BB', 'email'=>'102'),
array('nome'=>'phpflow', 'cognome'=>'CC', 'email'=>'103') );
$x = array(
"draw" => 1,
"recordsTotal" => count($cc),
"recordsFiltered" => count($cc),
"data" => $cc
);
echo json_encode($x);
} }
然后,这里是chejs代码
<script type="text/javascript">
function myfunc(){
$('#example').DataTable( {
'processing': true,
'serverSide': true,
'ajax':{
type: 'POST',
url: "<?php echo Cake\Routing\Router::url(
array(
'controller'=>'posts',
'action'=>'getdata',
'_ext'=>'json',
'_full' => true //for full url path
));?>",
success:function(msg){
console.log(msg);
},
error: function(e) {
alert("An error occurred: ");
console.log(e);
}
}
} );
}
我尝试不将动作响应进行json_编码,在chrome中,我在数据数组后看到了以下内容:
App\Controller\PostsController::getdata()-App/Controller\PostsController.php,第147行
Cake\Controller\Controller::invokeAction()-CORE\src\Controller\Controller.php,第440行
Cake\Http\ActionDispatcher::_invoke()-CORE\src\Http\ActionDispatcher.php,第119行
Cake\Http\ActionDispatcher::dispatch()-CORE\src\Http\ActionDispatcher.php,第93行
Cake\Routing\Dispatcher::dispatch()-CORE\src\Routing\Dispatcher.php,第60行
[main]-ROOT\webroot\index.php,第37Arraynull行
因此,问题来自index.php页面,但为什么它会返回空数组呢?
谢谢好的,我认为这段代码是错误的,你可以回显json,但不要停止渲染器,请参阅帮助
//On controller
$cc = [
'message' = > 'Hello mr.bitdiego'
];
$this->set('data', $cc);
$this->set('_serialize', ['data']);
在您的app controller上,当找到序列化数据时,此altear模板并将布局渲染到ajax,请参见On template/layout/ajax.ctp
但是,你为什么要这样做?请看,您没有创建控制器的操作,现在您使用的是资源:D请查看,方便您的生活。问题并非源于
index.php
,这只是stacktrace的开始,显然服务器端发生了错误/异常。请检查您的日志,并将完整的错误消息(包括相关的stacktrace)添加到您的问题中。还请看一看,控制器操作不应该回显数据!thanx sebastiao(和ndm)。我不知道你发布的restful资源,我会研究它。我试图为我的工作解决一个(真实的)问题:我必须上传包含用户数据(名字、姓氏、电子邮件等)的xls文件,然后我会在数据表中显示项目,并进行过滤(甚至更多的编辑、删除项目…),所以我认为数据表可能是最佳选择。好的,是的。数据库是最好的选择。你们解决问题了吗?如果解决了,请投票回答。啊,对不起,我忘了这个!是的,你的回答非常有用,非常有用
//On controller
$cc = [
'message' = > 'Hello mr.bitdiego'
];
$this->set('data', $cc);
$this->set('_serialize', ['data']);