【问题标题】:Cakephp 2.x and Jquery : Undefined variable: postsCakephp 2.x 和 Jquery:未定义的变量:帖子
【发布时间】:2013-07-04 17:28:33
【问题描述】:

我尝试使用 jquery 从另一个视图调用视图,但出现未定义变量和许多其他错误。

让我解释一下

在我的 AppController 中,我添加了 Js 来使用 jquery

class AppController extends Controller {
    var $helpers = array('Html','Form','Js');  }

在我的布局中,default.ctp 文件中,我添加了 2 行

echo $this->Html->script('jquery');

echo $this->Js->writeBuffer(array('cache'=>TRUE)); 作为头块的最后一行

我的 PostsController 文件的添加操作,我添加了组件

public $components = array('RequestHandler');

在我的添加操作中,我使用了,

$this->render('index','ajax'); 如果调用是 ajax 调用。

如果渲染命令引用了一个 div 部分,它就可以工作。

但是当我想渲染现有视图时,在本例中为 index ,这是另一个操作 PostController那个指向view.ctp,我得到了错误未定义变量posts等错误。

你能告诉我缺少什么吗?

【问题讨论】:

  • 你能解释得更好吗?你试图从另一个视图调用一个视图?为什么?这是可怕的做法。究竟是什么错误?

标签: jquery ajax cakephp cakephp-2.1


【解决方案1】:

首先,如果您不打算使用 JsHelper,则不应包含它。您不需要明确地使用 JsHelper 来使用 jQuery。很明显,您不知道所有这些东西是如何结合在一起并相互联系的。

您收到“未定义帖子”错误,因为(我猜)当您尝试渲染 index 视图时,您没有设置 posts 变量。我相当确定没有类似的东西:$this->set('posts', $someVariable);。显示此错误是因为您的 index.ctp 期望收到一个包含所有帖子的 $posts 变量。我怀疑这个视图也是通过cake bake 生成的,对吧?如果你想渲染它,你需要获取帖子并设置变量posts

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 1970-01-01
    • 2019-09-22
    • 2014-04-26
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多