【发布时间】:2015-10-09 18:36:26
【问题描述】:
我找不到此问题的有效解决方案: 我想更新视图的一部分而不重新加载它, 我有一个表格收集要传递给控制器的数据, 控制器需要从数据库中获取数据并输出 JSON 到视图,以便它可以填充这些数据。
我试图调整这个http://tutsnare.com/post-data-using-ajax-in-laravel-5/,但它根本不起作用。收集的数据没有到达控制器。
我的理解是视图中的javascript部分应该监听click事件并向控制器发送GET请求,控制器检查数据是否通过AJAX发送,从DB获取数据然后以JSON形式返回响应,然后更新视图。 请问,有没有人有一个可行的例子或者可以解释一下?
【问题讨论】:
-
使用常规 POST 请求或通过 AJAX 向控制器发布表单与控制器相同。如果您的控制器和表单在没有 AJAX 的情况下工作,那么问题出在 JavaScript 中,与 Laravel 控制器无关。
-
好的,但是假设您以常规方式发布到控制器,您如何向视图输出 JSON 响应而不是重新加载页面?整个 AJAX 发布的目的不是为了防止重新加载吗?
-
你很容易吐出 json
return response()->json(['key'=>'value']);。这将返回带有正确 JSON 标头的正确响应。重新加载或不重新加载页面都是在 JavaScript 中完成的。您将 AJAX 请求发送到控制器并获得 JSON 响应,然后您必须使用您自己的数据填充视图,使用您需要的任何 JS 代码。 -
澄清一下,Laravel 本身不会更新您的视图或通过 ajax 填充您的表单。你必须自己做。这是通过 JavaScript 而不是 PHP 完成的。 Laravel 是 PHP 框架,不包含任何 JavaScript 逻辑。
-
是的,我知道 laravel 需要 ajax 来填充,关键是我没有找到一个可行的例子,因此遇到了困难
标签: ajax json laravel controller