在 laravel 中通过 ajax 返回视图
Posted
技术标签:
【中文标题】在 laravel 中通过 ajax 返回视图【英文标题】:Return a view via ajax in laravel 【发布时间】:2013-11-10 14:41:51 【问题描述】:每当用户使用 ajax 单击按钮时,我想向用户显示一个视图。 这是我的代码。
// BASE = localhost/project/public/
$('#button').click(function()
$.ajax(
url: BASE + "user/settings",
type: 'GET'
)
.done(function( data )
console.log( data );
);
);
还有我的 routes.php
Route::get('user/settings', 'UserController@getSettings');
和 UserController.php
public function getSettings()
return View::make('user.settings');
但是输出是这个错误:
"error":"type":"ErrorException","message":"Undefined offset: 0","file":"H:\\dev \\xampp\\htdocs\\lchat\\vendor\\laravel\\framework\\src\\Illuminate\\Support \\Collection.php","line":470
编辑:错误在视图中。我修好了。
问题 2:通过 ajax 加载的页面本身包含另一个 ajax 发布请求。但它不再通过 ajax 发送数据。刷新页面以发送数据。
jquery 代码:
$('#settings :submit').click(function(e)
e.preventDefault();
$.post(BASE + 'settings/save',
'userName' : $('#userName').val()
, function(data)
return 'OK';
);
);
问题解决:我使用.on
绑定事件:
$(document).on('click', '#settings :submit', function(e) ... );
它正在工作... 谢谢大家。
【问题讨论】:
您的视图是否可以在 ajax 之外(在我们的浏览器上)工作?http://localhost/project/public/user/settings
我是个白痴 :|视图本身有这个错误!我修好了它。现在它正在工作。无论如何,我花了 1 个小时才完成这项工作!
这就是错误的工作方式,您永远不会记得查看您需要的位置。 :) 很好,它现在正在工作。享受 Laravel!
【参考方案1】:
好吧,首先,您的观点有误。您遇到的错误是指您尝试访问的数组实际上没有您尝试使用的密钥 ($arr[0]
)。
一旦你用视图本身修复了错误,它应该可以正常工作。 javascript 将以 html 格式获取数据,您可以将其插入到您希望它显示的任何位置。
【讨论】:
【参考方案2】:查看文件前使用字符串方法
return (String) view('Company.allUserAjax');
【讨论】:
谢谢,这对我有用。我试图将我的视图部分传递给 Pusher,它作为一个 javascript 对象通过。使用 (String) 修复它。以上是关于在 laravel 中通过 ajax 返回视图的主要内容,如果未能解决你的问题,请参考以下文章
在 Laravel 5 中通过 AJAX 将数据从视图发布到控制器
在 Laravel 中通过 ajax 加载更雄辩的 hasMany 关系查询?
如何在控制器laravel 8中通过ajax传递路由链接和图像存储链接