2015-06-30 4 views
-1

Я хочу добавить динамические данные из базы данных в базу. Но я получаю ошибку 404, в то время как я даю контроллер в URL-адресе ajax.добавить динамические данные в footable в yii2

Это мой все пост вид:

<?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() 
    { 
     $fooTableData = new Post(); 
     $fooTable = $fooTableData->getFooTableData(); 
     // print_r($fooTable); 
     // exit; 
     return $fooTable; 
    } 
?> 

Это сообщение модель:

<?php 
public function getFooTableData() 
    { 
     $query = new Query; 
     $query->select('*') 
     ->from('post'); 
     $command = $query->createCommand(); 
     $posts = $command->queryAll(); 
     return json_encode($posts) 
    } 
?> 

Когда мой метод индекса вызван, он дает мне ошибку 404 Not Found

Как я могу получить данные в переменной данных?

ответ

1

Hm? «getFooTableData» не является действительным именем действия. В yii2 он должен быть actionGetFooTableData.

+0

да, это сработано !! –

+0

, но 'actionGetFooTableData' не работает. Мне нужно использовать' actionGet_foo_table_data', и это сработало !! –

+0

Хмм, как вы теперь это называете? Я уверен, что он должен работать с hypenated (не могу проверить его сейчас) как scaisEdge сказал попробовать «post/get-foo-table-data». Или используйте Url heper class Url: Url :: to (['post/getfootabledata']) –

0

Я думаю, вы должны использовать для обозначения действия контроллера с не прописные, но разделены с -:

url : '<?php echo BASEURL.'post/get-foo-table-data'?>', //try this/
+0

имя функции: getFooTableData() –

+0

Я пробовал эту 'get_foo_table_data', но все равно получаю ту же ошибку –

+0

Мне нужны данные json в переменной var var? как я могу это сделать? –

Смежные вопросы