很难理解laravel中的重定向/路由
Having a hard time understanding redirecting / routing in laravel
两个小时后我就完全被困了,肯定需要你的帮助。免责声明:我不是一个程序员,只是一个试图模仿一个想法的人。
所以我的页面实际上运行得很好,但我考虑过将内容从模式弹出窗口移动到实际的子页面。意思是:如果用户点击按钮,当前页面中的一些数据点将被收集并传递到另一个视图,该视图将使用数据点作为输入进行渲染。
编辑:为了澄清:按钮在/results.php上,数据是动态生成的。该方法应该从这里获取一些数据点,生成一个新的视图,并在/buy.php或/buy/custom.php 中渲染它
我的想法:
- 不带参数的正常重定向:内部链接
- 更新页面内容而不重定向,但使用参数:Ajax
因此,结合我的想法->使用ajax并返回一个新的全新视图。
我尝试过的:
$("body").on("click", ".fa-shopping-cart", function() {
var $para1 = $(this).attr("data1");
var $para2 = $(this).attr("data2");
var $para3 = $(this).attr("data3");
var $para4 = $(this).attr("data4");
$.ajax({
url: "buy",
data: {
a: $para1,
b: $para2,
c: $para3,
d: $para4
},
beforeSend: function (xhr) {
var token = $('meta[name="csrf_token"]').attr('content');
if (token) {
return xhr.setRequestHeader('X-CSRF-TOKEN', token);
}
},
type: "post",
success: function(response){
console.log(response);
},
error: function(jqXHR, textStatus, errorThrown) {
console.log(JSON.stringify(jqXHR));
console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
}
});});
路由:
Route::post('/buy', 'PageRouting@buy');
控制器:
public function buy()
{
$para1= $_POST['a'];
$para2 = $_POST['b'];
$para3 = $_POST['c'];
$para4 = $_POST['d'];
// some magic to output $data
return view('pages.buy', compact("data"));
}
buy.blade.php存在,并在foreach循环的帮助下显示$data。
所以,当我第一次点击按钮时,显而易见的事情发生了:
视图("pages.buy")以纯html记录/显示在我的控制台中,而不是在浏览器中呈现。
现在我坐在这里已经两个小时了,我一点也不知道。我读过一些博客文章,说您不能在ajax调用中重定向。不幸的是,这篇帖子并没有给出任何关于如何做到这一点的提示。
有人能帮我吗?
所有最佳
如果你想用响应替换整个文档,你必须使用document.write,但这不是最好的方法。如果你需要返回视图,为什么不使用普通表单提交?
success: function(response){
document.write(response);
},
附言:如果您还想更改url,请使用历史处理功能。
https://developer.mozilla.org/en-US/docs/Web/API/History_API
在您的购买方法-中
public function buy ()
{
....//some stuff to get $data
$html = view('pages.buy', compact("data"))->render();
return response()->json([
'success' => true,
'html' => $html
])
}
在您的ajax成功功能中
success: function(response){
if(response.success)
{
$('#elementId').html(reponse.html) // or whatever you need
}
},
相关文章:
- Hapi-js重定向到另一个带有额外请求数据的路由
- 无法使用角度路由提供程序重定向
- 哈希重定向之前使用斜杠的主干路由
- 很难理解laravel中的重定向/路由
- 数据切换=“;下拉菜单”;激活路由重定向,而不是yeoman中的下拉菜单
- 路由提供程序否则重定向到不起作用
- AngularJS仅在浏览器的后退按钮上重定向路由
- AngularJs 和 Codeigniter 路由会导致无限重定向循环
- 余烬重定向仅在您第一次进入路由时触发
- 拉拉维尔重定向::路由不起作用
- 余烬父路由重定向到子路由
- Ionic (AngularJS) - 重定向用户和路由
- Express 4– 将所有路由的HTTP重定向到HTTPS
- 快速重新启动匹配路由-重定向
- Angular.js:prettyPhoto URL重定向到Angular路由中提到的默认页面
- 角度路由-重定向到外部站点
- 正在重定向angular.js路由的.htaccess
- 在重定向到另一个页面/路由之前进行确认
- Javascript重定向:symfony路由中的脚本不工作
- 如果未通过身份验证,则在所有路由上重定向到登录