Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.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
Php 在yii2的footable中追加动态数据_Php_Ajax_Yii2_Footable - Fatal编程技术网

Php 在yii2的footable中追加动态数据

Php 在yii2的footable中追加动态数据,php,ajax,yii2,footable,Php,Ajax,Yii2,Footable,我想将数据库中的动态数据附加到footable中。但当我在ajax的url中给出控制器时,我得到了404错误 这是我的所有帖子视图: <?php use yii\helpers\Html; use yii\grid\GridView; $this->title = 'Posts'; $this->params['breadcrumbs'][] = $this->title; ?> <div class="bg-light lter b-b wrapper

我想将数据库中的动态数据附加到footable中。但当我在ajax的url中给出控制器时,我得到了404错误

这是我的所有帖子视图

<?php

use yii\helpers\Html;
use yii\grid\GridView; 

$this->title = 'Posts';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="bg-light lter b-b wrapper-md">
    <div class="row">
        <div class="col-sm-6">
            <h1 class="m-n font-thin h3"><?= Html::encode($this->title) ?></h1>
        </div>
        <div class="col-sm-5">
            <?= Html::a('Create Post', ['create'], ['class' => 'btn btn-success pull-right']) ?>
        </div>
    </div>
</div>
<div class="panel-body"> 

    <div class="tab-pane active" id="demo">
        <div class="row">
            <div class="">
                <label class="col-sm-1 control-label">Search:</label>
                <div class="col-sm-3">
                    <input class="form-control" id="filter" type="text"/>
                </div>
                <div class="col-sm-3">
                    <a href="#clear" class="clear-filter" title="clear filter">[clear]</a>
                    <span class="row-count"></span>
                </div>
            </div> 
        </div>
        <table class="table demo" data-filter="#filter" data-page-size="5">
            <thead>
                <tr>
                    <th data-toggle="true">
                        Title
                    </th>
                    <th data-hide="phone">
                        Description
                    </th>
                    <th data-hide="phone,tablet">
                        Created Date and Time
                    </th> 
                    <th>
                        Status
                    </th>
                </tr>
            </thead>
            <tbody>
            </tbody>
            <tfoot class="hide-if-no-paging">
                <tr>
                    <td colspan="5">
                        <div class="pagination pagination-centered"></div>
                    </td>
                </tr>
            </tfoot>
        </table>
    </div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {

        function create_row (item) {
            var row = $('<tr><td>' + item.title + '</td><td>' + item.date + '</td></tr>');
            return row;
        }

        $.ajax({
            url : '<?php echo BASEURL.'post/getFooTableData'?>', **Here i am getting 404 error** 
            data: {  },
            success : function(data) {
                $.each(data, function(index, item){
                    var row = create_row(item);
                    $('table tbody').append(row);
                });

                $('table').trigger('footable_initialize');
            },
            error : function(xhr, statusText, error) {
                alert("Error! Could not retrieve the data.");
            }
        });

        $('table').footable({
            bookmarkable: { enabled: true }
        }).bind({
            'footable_filtering': function (e) {
                var selected = $('.filter-status').find(':selected').text();
                if (selected && selected.length > 0) {
                    e.filter += (e.filter && e.filter.length > 0) ? ' ' + selected : selected;
                    e.clear = !e.filter;
                }
            },
            'footable_filtered': function() {
                var count = $('table.demo tbody tr:not(.footable-filtered)').length;
                $('.row-count').html(count + ' rows found');
            }
        });

        $('.clear-filter').click(function (e) {
            e.preventDefault();
            $('.filter-status').val('');
            $('table.demo').trigger('footable_clear_filter');
            $('.row-count').html('');
        });

        $('.filter-status').change(function (e) {
            e.preventDefault();
            $('table.demo').data('footable-filter').filter( $('#filter').val() );
        });
    });
</script>
<?php
public function getFooTableData()
    {
        $query = new Query;
        $query->select('*')
        ->from('post');
        $command = $query->createCommand();
        $posts = $command->queryAll();
        return json_encode($posts) 
    }
?>

搜索:
标题
描述
创建日期和时间
地位
$(函数(){
函数创建_行(项){
变量行=$(''+item.title+''+item.date+'');
返回行;
}
$.ajax({
url:'',**这里我收到404错误**
数据:{},
成功:功能(数据){
$。每个(数据、功能(索引、项目){
var row=创建_行(项目);
$('table tbody')。追加(行);
});
$('table')。触发器('footable_initialize');
},
错误:函数(xhr、状态文本、错误){
警报(“错误!无法检索数据。”);
}
});
$(“桌子”)。可步行({
可书签:{已启用:true}
}).绑定({
“可脚踏过滤”:函数(e){
var selected=$('.filter status').find(':selected').text();
如果(已选择(&selected.length>0){
e、 过滤器+=(e.filter&&e.filter.length>0)?“”+已选择:已选择;
e、 清除=!e.filter;
}
},
'footable_filtered':函数(){
变量计数=$('table.demo tbody tr:not(.footable filtered')。长度;
$('.row count').html(count+'rows find');
}
});
$('.clear filter')。单击(函数(e){
e、 预防默认值();
$('.filter status').val('');
$('table.demo').trigger('footable_clear_filter');
$('.row count').html('');
});
$('.filter status')。更改(函数(e){
e、 预防默认值();
$('table.demo').data('footable-filter').filter($('#filter').val());
});
});
这是我的post控制器功能:

<?php 
public function getFooTableData()
    {
        $fooTableData = new Post();
        $fooTable = $fooTableData->getFooTableData();
        // print_r($fooTable);
        // exit;
        return $fooTable;
    }
?>

这是post模型

<?php

use yii\helpers\Html;
use yii\grid\GridView; 

$this->title = 'Posts';
$this->params['breadcrumbs'][] = $this->title;
?>
<div class="bg-light lter b-b wrapper-md">
    <div class="row">
        <div class="col-sm-6">
            <h1 class="m-n font-thin h3"><?= Html::encode($this->title) ?></h1>
        </div>
        <div class="col-sm-5">
            <?= Html::a('Create Post', ['create'], ['class' => 'btn btn-success pull-right']) ?>
        </div>
    </div>
</div>
<div class="panel-body"> 

    <div class="tab-pane active" id="demo">
        <div class="row">
            <div class="">
                <label class="col-sm-1 control-label">Search:</label>
                <div class="col-sm-3">
                    <input class="form-control" id="filter" type="text"/>
                </div>
                <div class="col-sm-3">
                    <a href="#clear" class="clear-filter" title="clear filter">[clear]</a>
                    <span class="row-count"></span>
                </div>
            </div> 
        </div>
        <table class="table demo" data-filter="#filter" data-page-size="5">
            <thead>
                <tr>
                    <th data-toggle="true">
                        Title
                    </th>
                    <th data-hide="phone">
                        Description
                    </th>
                    <th data-hide="phone,tablet">
                        Created Date and Time
                    </th> 
                    <th>
                        Status
                    </th>
                </tr>
            </thead>
            <tbody>
            </tbody>
            <tfoot class="hide-if-no-paging">
                <tr>
                    <td colspan="5">
                        <div class="pagination pagination-centered"></div>
                    </td>
                </tr>
            </tfoot>
        </table>
    </div>
</div>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $(function () {

        function create_row (item) {
            var row = $('<tr><td>' + item.title + '</td><td>' + item.date + '</td></tr>');
            return row;
        }

        $.ajax({
            url : '<?php echo BASEURL.'post/getFooTableData'?>', **Here i am getting 404 error** 
            data: {  },
            success : function(data) {
                $.each(data, function(index, item){
                    var row = create_row(item);
                    $('table tbody').append(row);
                });

                $('table').trigger('footable_initialize');
            },
            error : function(xhr, statusText, error) {
                alert("Error! Could not retrieve the data.");
            }
        });

        $('table').footable({
            bookmarkable: { enabled: true }
        }).bind({
            'footable_filtering': function (e) {
                var selected = $('.filter-status').find(':selected').text();
                if (selected && selected.length > 0) {
                    e.filter += (e.filter && e.filter.length > 0) ? ' ' + selected : selected;
                    e.clear = !e.filter;
                }
            },
            'footable_filtered': function() {
                var count = $('table.demo tbody tr:not(.footable-filtered)').length;
                $('.row-count').html(count + ' rows found');
            }
        });

        $('.clear-filter').click(function (e) {
            e.preventDefault();
            $('.filter-status').val('');
            $('table.demo').trigger('footable_clear_filter');
            $('.row-count').html('');
        });

        $('.filter-status').change(function (e) {
            e.preventDefault();
            $('table.demo').data('footable-filter').filter( $('#filter').val() );
        });
    });
</script>
<?php
public function getFooTableData()
    {
        $query = new Query;
        $query->select('*')
        ->from('post');
        $command = $query->createCommand();
        $posts = $command->queryAll();
        return json_encode($posts) 
    }
?>

当我的索引方法被调用时,它给了我404NotFound错误


如何获取数据变量中的数据?

我认为控制器操作必须使用非大写符号,但用
-
分隔:

 url : '<?php echo BASEURL.'post/get-foo-table-data'?>',  //try this /
url:“”,//试试这个/

Hm?“
getFooTableData
”不是有效的操作名称。。在yii2中,它应该是
actionGetFooTableData

函数名是:getFooTableData(),我尝试了这个
get\u foo\u table\u data
但是仍然得到相同的错误我想要var数据变量中的json数据吗?我该怎么做?在该函数中,我有jsond data,您必须调用
get foo table data',因为您的操作被调用
getFooTableData',而不是get foo table\u data,您必须参考控制器/操作的约定,但是
actionGetFooTableData
不起作用。。我必须使用
actionGet\u foo\u table\u data
,它成功了!!嗯,你现在怎么称呼这个动作?我很确定它应该和hypenated(现在不能检查)一起工作,就像scaisEdge说的,试试“post/get foo table data”。或者使用Url heper类Url:Url::to(['post/getfootabledata'])