如何使用ajax加载包含数据的视图?

时间:2015-06-24 23:21:34

标签: ajax laravel-4

我有Restful控制器,它使用数据库中的数据呈现视图,我想通过ajax在另一个视图中加载此视图及其数据。有一个问题"未定义的变量"。有没有解决方案?

2 个答案:

答案 0 :(得分:0)

需要在任何事情之前看到你的javascript,但通常对我来说这意味着拼写错误的元素id或拼写错误的参考文件

答案 1 :(得分:0)

当您将变量传递给视图时,它们仅在视图呈现时在服务器端可用,然后被丢弃。这意味着变量仅适用于您的应用程序的php,然后在视图呈现并发送到访问者Web浏览器时它们就消失了。

如果您尝试将变量与JavaScript一起使用,那么您将在客户端运行JavaScript(而不是服务器端)。您运行JavaScript的客户端上不存在传递给视图的变量。

从它的声音来看。您正在通过laravel在控制器中定义变量。然后,您将变量从控制器传递到视图。然后视图呈现为html并发送到访问者的计算机(客户端),然后加载html,这就是JavaScript开始加载的时间。

这就是问题,现在可能的解决方案。

首先,您可以通过laravel闪存变量将变量(假设它是简单数据而不是对象)发送到浏览器,这些变量实际存储在客户端的一次性cookie上。然后使用JavaScript访问cookie并获取数据,然后将其存储到js变量并在脚本中使用它。

其次,您创建一个Api来响应您的http请求,然后从您的JavaScript向Aji发送Ajax请求以获取数据。然后你将它存储在JavaScript中并使用它。这允许像对象这样的复杂数据,因为您将使用JSON格式发送信息以响应Ajax调用。虽然cookie被限制为(我认为是5kb),但JSON数据确实没有理论上的限制。

我希望有所帮助,我希望我能理解你的问题。