【问题标题】:How can I update a php variable in a Kohana view without refreshing the page?如何在不刷新页面的情况下更新 Kohana 视图中的 php 变量?
【发布时间】:2012-12-16 20:52:51
【问题描述】:

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

【问题讨论】:

  • 发送一个 XHR,在会话中存储值。想一想,我有点怀疑你不知道你的 HTML 不再是“视图”了。

标签: php ajax kohana


【解决方案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>

【讨论】:

  • 感谢您的快速回复!我可以只返回变量吗,Daan?因为我想做的不是在屏幕上写东西,而是使用我的变量(这是一个大数组)中的数据来渲染带有几条曲线的图表。所以不是“回显'一些字符串或变量';”我可以使用“return $variable”吗?在 Controller 中,然后在 Ajax 的成功部分中执行类似“curves = ;”的操作?以便我可以使用 jquery (jqplot) 渲染图表?
  • 你可以返回任何你喜欢的,数组,json对象。在您的控制器中,我会:“返回 json_encode($variable);”因此您可以直接在 javascript 的成功部分中使用 json 对象并使用 jquery jqplot 渲染图表。
  • 非常感谢,大安!与此同时,我想通了! :) 对我有用的是: echo json_encode($variable);返回;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-15
  • 1970-01-01
  • 2015-08-20
  • 2019-11-25
  • 2021-02-26
相关资源
最近更新 更多