微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-Yii-方法包括在此视图中的另一个视图

我的版面页面

<html>
 <body>
  <div id="container">
   <ul id="list"></ul>
  </div>
  <input id="update" value="update" />
 </body>
</html>

其中ul列表是部分列表,将在以下情况下呈现

>整个页面被加载
>单击更新按钮时,将发出ajax请求,并且将使用响应ul列表更新容器层的innerHTML

我是Yii的新手,不确定在两种情况下都如何重用ul部分,我用Google搜索了一下,小部件似乎是解决方案,不确定.有任何想法吗?

谢谢.

解决方法:

如果我正确理解您的问题,您可以做一些事情…

(我假设您有一个局部视图文件,例如views / model / _list.PHP.)

您可以在初始页面加载时渲染renderPartial(‘/ model / _list’),然后在AJAX操作中再次调用renderPartial(‘/ model / _list’).

或者,您可以仅执行AJAX操作(包含renderPartial(‘/ model / _list’)),然后使用jQuery在页面加载时调用它,而不是在视图中呈现它(只需调用Yii :: app()-> getClientScript( )-> registerScript在您要加载的视图中,并使用$.ajax()或其他名称进行调用).

要做的第三件事是在控制器中创建一个函数(不是一个动作,只是一个常规的公共方法),该函数返回renderPartial的输出(返回$this-> renderPartial(‘/ model / _list’,array() ,是的)我认为).然后,鉴于初始负载,我回显了该函数,并且在ajax操作中,在调用Yii :: app()-> end();之前回显了该函数.

当您要在整个站点上渲染一些部分代码时,即使在来自不同控制器的页面上,小部件也很有用.因此,如果该列表位于整个站点侧边栏中,则最好用它制作一个小部件,否则我将只使用您正在使用的模型的控制器.使用窗口小部件将执行的操作与使用常规视图相同—在窗口小部件中构建数据并呈现partialView,或通过AJAX调用它.您可能会对AJAX进行的操作是POST到要从中获取数据的控制器,因此您仍然需要AJAX操作.窗口小部件将使其更容易放置在网站的不同位置.

祝好运!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐