如何将控制器中的数据放入视图中的特定div元素

时间:2014-01-15 20:12:49

标签: javascript php codeigniter

如何将$mytweets数据加载到特定模板/视图中的特定divfooter.php

我有twitteruserfeed.php作为我的控制器来获取推文,但我不知道如何在现有的推文中展示它。

HTML:

<div id="fresh-tweetfeed"> $mytweets GOES HERE </div> 

PHP:

class TwitterUserFeed extends CI_Controller
{
    public function __construct()
    { 
        parent::__construct();    
    }

    public function getTweets()
    {
        $params = array(
            'userName' => 'RowlandBiznez',
            'consumerKey' => 'hgfhhgffhg',
            'consumerSecret' => 'hhffhfghfhf',
            'accessToken' => 'hfhhhfhhf',
            'accessTokenSecret' => 'hfhfhfhfhhfhfh',
            'tweetLimit' => 5 // the no of tweets to be displayed
        );
        $this->load->library('twitter', $params);
        $tweets = $this->twitter->getHomeTimeLine();
        $this->load->helper('tweet_helper');
        $mytweets = getTweetsHTML($tweets);

        echo $mytweets;
    }
}

我还有一个帮助文件tweet_helper.php。帮我解决这个问题。

1 个答案:

答案 0 :(得分:1)

解决方案#1:

如果必须在每个页面上显示推文,请在CI_Controller文件夹中扩展MY_Controller.php(创建application/core文件)并在属性上获取/存储推文:

class MY_Controller extends CI_Controller
{
    public $tweets = '';

    public function __construct()
    {
        // Execute CI_Controller Constructor
        parent::__construct();

        // Store the tweets
        $this->tweets = $this->getTweets();
    }

    public function getTweets()
    {
        $params = array(
            'userName' => 'RowlandBiznez',
            'consumerKey' => 'hgfhhgffhg',
            'consumerSecret' => 'hhffhfghfhf',
            'accessToken' => 'hfhhhfhhf',
            'accessTokenSecret' => 'hfhfhfhfhhfhfh',
            'tweetLimit' => 5 // the no of tweets to be displayed
        );
        $this->load->library('twitter', $params);
        $tweets = $this->twitter->getHomeTimeLine();
        $this->load->helper('tweet_helper');
        $mytweets = getTweetsHTML($tweets);

        return $mytweets;
    }
}

然后在每个控制器中,在加载视图时使用该属性:

$this->load->view('path/to/view', array('tweets', $this->tweets));

解决方案#2:

您还可以通过从客户端向Controller/Method发送XHR请求(在提供页面后)加载推文,然后通过Javascript将响应插入到页面中。

这是一个jQuery示例:

$.ajax({
    url      : <?php echo base_url('controller/method'); ?>,
    type     : 'GET',
    success  : function (result) {
        // Insert the result into a container
        $('#fresh-tweetfeed').append(result);
    }
});