我有一个名为 User 的控制器。我在该控制器中编写了三个函数,即;function1,function2,function3 每个函数在 View/User 文件夹中都有相应的视图文件。我的问题是,在我的 function1.ctp 文件中,我使用 jquery 创建了一个左侧菜单栏。该菜单栏中有三个菜单,当我单击每个菜单时,我想借助对控制器的ajax请求加载function1.ctp,function2.ctp function3.ctp的内容。我们该怎么做?这可能吗..?如果有人可以帮助我..请回复
问问题
933 次
1 回答
1
当然这是可能的——AJAX 尽可能地定义了它。
如果您已经设置了这三个功能,并且在您访问时看到它们呈现他们的视图,example.com/yourcontroller/functionName
那么您就差不多了。
您现在在客户端需要做的是当用户单击主菜单时 - 加载子菜单,对吗?将 javascript 点击函数回调附加到点击的 HTML 项目,当该事件发生时通过 AJAX 调用服务器。
您需要问自己“我需要从服务器返回什么 - HTML 或 JSON?” 在第一种情况下 - 当您收到返回的 HTML 数据时,只需将其放入您想要的 DOM 中。在第二种情况下,您将需要处理 JSON 并构建 HTML 或其他任何内容。
这就是答案,现在是一些建议。
你真的,真的需要为菜单使用 AJAX 吗?他们经常改变吗?
请记住:1 AJAX 调用 == 1 对服务器的请求 您的子菜单是否真的需要像这样加载它们的数据/更改密集型?例如,如果您的菜单根据用户的位置(在站点中)或用户操作而改变,那么您可以使用它,否则您就是在用火箭筒杀死蚊子!您应该尽量保持数据交换尽可能低,gzip 服务器返回等等。这种解决方案对于这种情况可能是一种过度杀伤力。
于 2013-04-16T08:21:52.030 回答