这是我的代码:
routes.php文件
Route::get('menu', function()
{
return View::make('display_food');
});
menu.blade.php
<script type="text/javascript">
function linkPage()
{
location.href = "menu";
}
</script>
......
......
<button class="btn btn-default" onclick="linkPage()">Menu</button>
我想将一个div id“#link_menu”传递给url,这样当它加载时,它会显示为“http://www.abc.com/food_cms/system/public/menu#link_menu”,这可以使页面跳转到我想要的部分。但是,我试过
Route::get('menu', function()
{
return View::make('display_food')->with('#link_menu');
});
并且
Route::get('menu', function()
{
return View::make('display_food',compact('#link_menu'));
});
这个
Route::get('menu', function()
{
return View::make('display_food')->with(compact('#link_menu'));
});
但他们都没有工作。该网址仍显示在“http://www.abc.com/food_cms/system/public/menu”中,没有“#link_menu”。有任何想法吗?
答案 0 :(得分:1)
您希望让location.href
首先进入主播:
window.location = "#anchor";
在您要跳转到的内容之前,有一个命名的锚标记,例如:
<a id="anchor"></a><h1>my content</h1>
在您的视图中,您将需要与此类似的内容,因此您可以指定要从控制器/路由器中跳转到的锚点:
<head>
<title>This page will go straight to the anchor I specify...</title>
@if (isset($jump_to))
<script>
function window.onload() {
window.location = "#{{$jump_to}}"
}
</script>
@endif
</head><body>
<p>lot's of content...</p>
<p>lot's of content...</p>
<p>lot's of content...</p>
[...]
<a id="anchor"></a><h1>my content</h1>
</body>
然后使用您的路线,指定具有特定$ jump_to变量的视图,该变量指定您将被投掷到的位置。
Route::get('menu/{id}', function($menu_id)
{
return View::make('display_food')->with('jump_to' => $menu_id);
});
如果指定了$ jump_to,则会添加javascript,浏览器将跳转到您指定的锚标记。
答案 1 :(得分:0)
你有url
:
http://www.abc.com/food_cms/system/public/menu#link_menu
实际上,#
之后的部分未提交给服务器,您需要使用如下的查询字符串传递:
http://www.abc.com/food_cms/system/public/menu?menuId=link_menu
//location.href = "menu?menuId=link_menu";
所以你可以使用:
$menuId = Inpput::get('menuId');
您也可以使用:
Route::get('menu/{id}', function($menu_id)
{
return View::make('display_food', compact('menu_id'));
});
为了使其有效,您可以像这样构建url
:
http://www.abc.com/food_cms/system/public/menu/ink_menu
//location.href = "menu/link_menu";
在view
中,您可以将其$menu_id
用作ink_menu
,而#
不包含{{1}},以便在使用之前将其连接起来。