2015-11-04 114 views
0

我正在通过ajax加载一些注释,默认值是5 onload,那么用户可以请求更多,如果他们想。在ajax中加载元素

这是更好的实践问题。

哪里是最好的地方建立html元素,将显示在页面上。

我应该在javascript文件中构建它们然后显示它们吗?

我正在使用Yii框架如果这是任何帮助。

+0

只需将javascript中创建的html附加到页面中的图层 –

回答

0

确实有很多方法可以实现这一点。我以前遇到类似的问题(也与评论系统有关),我所做的是创建一个自定义的Widget,并将其加载到控制器中。小部件可以具有查看文件,这些文件将根据请求加载,您可以简单地将输出插入页面中的特定位置。 这是我在我的代码:

/protected/widgets/LoadComments.php

class LoadComments extends CWidget { 

    public $offset; 
    public $limit; 
    public $comments; 

    public function run() { 
     //(some offset and limit logic here) 
     $criteria = new CDbCriteria(); 
     // some criteria definitions here (...) 

     $this->comments = Comment::model()->findAll($criteria); 

     $this->render('listComments', array()); 
    } 
} 

/protected/controllers/CommentController.php

public function actionListComments($offset = 0, $limit = 10) { 
    $this->widget("application.widgets.LoadComments", array(
     "offset" => $offset, 
     "limit" => $limit, 
    )); 
} 

/保护/视图/评论。 php

<div id="comments"></div> 
<script> 
    $(document).ready(function(){ 
     $.ajax({ 
      type: 'GET', 
      data: { offset : 0, limit : 10}, 
      url: '<?php echo Yii::app()->createUrl('/comment/listComments');?>', 
      success: function(data) { 
       $('#comments').html(data); 
      } 
     }); 
    }); 
</script>