如何在不刷新页面的情况下更新Kohana视图中的php变量?

时间:2012-12-16 20:52:51

标签: php ajax kohana

我正在使用Kohana PHP框架开发一个Web应用程序,但我遇到了困难。我在Controller中设置了一个PHP变量,以便在View中使用它。我想在View中连续更新此变量而不刷新页面。我想要做的是使用来自SQL数据库的数据实时显示图表,其中曲线的数据存储在此PHP变量中。我怎样才能做到这一点?是否可以直接在View中更新此变量(使用模型中的my函数)?

1 个答案:

答案 0 :(得分:1)

您可以使用Javascript向应用程序创建AJAX请求,而无需重新加载页面。发生的事情是请求发送到您的控制器/操作,在那里您可以查询您的数据库,您可以回复任何您喜欢的。 AJAX请求可以检索返回的数据并对其执行某些操作(在我们的示例中,使用新内容替换某些内容)。

您必须在页面上包含此Javascript代码。在这个例子中,我使用jQuery来发出AJAX请求:

$.ajax({
  url: /do/something  /* URL of your controller/action */
  success: function(data) { /* the data variable will receive the new content from the controller/action */
    $('#the_id_of_your_html_tag').html(data); /* replace the html content with the new data */
  },
});

在你的Kohana控制器中,你有类似的东西:

class Controller_Do extends Controller_Template
{
  public function action_something()
  {
    $this->auto_render = false;

     // make some call to your database, use your model whatever
     echo 'some string or variable';
     return;
  }
}

你的视图的Html将是这样的(根据示例):

<div id="the_id_of_your_html_tag">something</div>