0

我正在尝试找出一种方法来执行以下操作:

我想做一个动作,它将通过 ajax 加载,并且在页面重新加载时它也是页面的内部部分。

ZEND通过使用View Helper在框架中知道这一点,但不知道该怎么做Kohana

我是Kohana的新手。

编辑: 我正在尝试做的示例http://www.espncricinfo.com/west-indies-v-india-2011/engine/current/match/489228.html?CMP=chrome

在上面的网页中,当整个网页被加载时,实时计分板也被加载。但是当你点击“刷新记分牌”按钮时,只有实时记分牌会通过 ajax 被替换。

我想创建一个动作说action_scoreboard,它将用于带来记分牌数据。并action_index加载整个页面,但在action_index我需要调用的视图中action_scoreboard

谢谢

4

2 回答 2

0

不确定这是否是最好的方法,但这是我喜欢处理这种情况的方式。

public function action_index($raw = 0) {
    $records = Jelly::select('scores')->execute();

    if ($raw == 0) {
        $view = new View('purdy');
        $view->records = $records;
        $this->template->content = $view;
    } else {
        $this->auto_render = FALSE;
        $this->request->headers['Content-Type'] = 'text/xml';
        $view = new View('raw');
        $view->records = $records;
        $this->response->body($view->render());
    }
}

### THE PURDY VIEW ###
<table>
    <? 
    foreach ($records as $record) {
        echo '<tr>';
        echo '<td>'.$record->name.'</td>';
        echo '<td>'.$record->value.'</td>';
        echo '</tr>';
    }
    ?>
</table>

### THE RAW VIEW ###
<?xml version="1.0" encoding="utf-8"?>
<scores>
    <? 
    foreach ($records as $record) {
        echo '<score>';
        echo '<name>'.$record->name.'</name>';
        echo '<value>'.$record->value.'</value>';
        echo '</score>';
    }
    ?>
</scores>
于 2011-07-13T19:55:32.363 回答
0

我使用了 Kopjax - Pjax jQuery ajax 模块。它的代码在gitgub上可用

于 2011-07-14T09:45:36.637 回答