Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax cakephp 3.x和datatable示例_Ajax_Cakephp_Datatable_Cakephp 3.4 - Fatal编程技术网

Ajax cakephp 3.x和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'=>'

我刚接触过cake PHP3.4,我正在尝试用ajax请求和datatable构建一个示例 这是我的控制器:

 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']);