在laravel中提交表单后,请记住滚动条位置
Is it possible to remember scrollbar position after form submit and returning back to the home page?
Here is my form:
<form method="post" action="{{Route('sites.liking')}}">
<input name="_token" value="{{csrf_token()}}" type="hidden">
<input type="hidden" value="{{$meme->likes}}" name="likes">
<input type="hidden" value="{{$meme->id}}" name="likeid">
<input type="hidden" value="{{Auth::user()->name}}" name="sendeduser">
<button class="linking">+ {{$meme->likes}}</button>
</form>
Routing:
Route::post('/', ['uses' => 'LikingComments@liking', 'as' => 'sites.liking']);
Controller function:
public function liking(Request $request) {
//Function guts
return redirect('/')->with('status', $id);
}
I've tried several scripts but it always scrolls to the top of the page.
Is there a some way to go back to the same place of the page ?
表单提交并返回主页后是否可以记住滚动条位置? p>
这是我的表单 strong>: p>
路由 strong>: p>
控制器功能 strong>: p>
我尝试了几个脚本,但它总是滚动到页面顶部。 p>
有没有办法回到页面的同一位置? em> strong> p>
div >
&lt; form method =“post”action =“{{Route('sites.liking ')}}“&gt;
&lt; input name =”_ token“value =”{{csrf_token()}}“type =”hidden“&gt;
&lt; input type =”hidden“value =”{{ $ meme-&gt; likes}}“name =”likes“&gt;
&lt; input type =”hidden“value =”{{$ meme-&gt; id}}“name =”likeid“&gt;
&lt; ; input type =“hidden”value =“{{Auth :: user() - &gt; name}}”name =“sendeduser”&gt;
&lt; button class =“linking”&gt; + {{$ meme- &gt; likes}}&lt; / button&gt;
&lt; / form&gt;
code> pre>
Route :: post('/',['uses'=&gt;'LikingComments @ liking','as'=&gt;'sites.liking']); code> p>
公共功能喜欢(请求$请求){
//功能guts
返回重定向 ('/') - &gt; with('status',$ id);
}
code > pre>
Okay I've solved up that problem by adding an id to an element, new routing and changing main function.
<div id="{{$meme->id}}">
<form method="post" action="{{Route('sites.liking')}}">
<input name="_token" value="{{csrf_token()}}" type="hidden">
<input type="hidden" value="{{$meme->likes}}" name="likes">
<input type="hidden" value="{{$meme->id}}" name="likeid">
<input type="hidden" value="{{Auth::user()->name}}" name="sendeduser">
<button class="linking">+ {{$meme->likes}}</button>
</form>
</div>
Changed function:
public function liking(Request $request)
{
//Function guts
return redirect()->action('LikingComments@indexliking', ['id' => $id])->with('status', $id);
}
Routing:
Route::get('/#{id}' , ['uses' => 'LikingComments@indexliking', 'as' => 'indexliking']);
It don't work perfectly but it's fine for me. Thank you for your answers especially @kerbholz
You can use localStorage or sessionStorage to save current scroll position (scrollTop). and then assign it to scrollTop when you reload that previous page.