我想找到一种方法来执行以下操作:
我想制作一个动作,它将通过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
。
谢谢
答案 0 :(得分: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>
答案 1 :(得分:0)
我使用了Kopjax - Pjax jQuery ajax模块。其代码可在gitgub
上找到