Laravel 当我通过broswer返回时,再次显示成功消息
我正在使用sweet alert发送成功消息 一旦我提交表单并重定向到后面的页面,它会显示成功消息,但在那之后,我再次转到该页面,只是在不提交表单的情况下返回,它会再次显示成功消息 此问题仅在我重新加载页面后再次提交表单时出现,我转到该页面并返回其正常工作状态: 刀片文件:Laravel 当我通过broswer返回时,再次显示成功消息,laravel,flash-message,Laravel,Flash Message,我正在使用sweet alert发送成功消息 一旦我提交表单并重定向到后面的页面,它会显示成功消息,但在那之后,我再次转到该页面,只是在不提交表单的情况下返回,它会再次显示成功消息 此问题仅在我重新加载页面后再次提交表单时出现,我转到该页面并返回其正常工作状态: 刀片文件: @extends('layout/header') @include('layout/sidebar') <div id="page-wrapper"> <div class=&
@extends('layout/header')
@include('layout/sidebar')
<div id="page-wrapper">
<div class="container-fluid">
<div class="row">
<h2 class="page_heading1">EFTERÅT</h2>
<p class="page_heading">Här är 5 frågor om hur du efter avslutad kontakt ser på din situation. 1 är mycket
negativt/dålig t och 10 är mycket positivt/bra Ange en siffra genom att markera på linjen.</p>
<div class="col-md-12">
<div class="left_situationen">
@if(session()->has('message'))
<div class="alert alert-success">
{{ session()->get('message') }}
</div>
@endif
<form class="form-horizontal fyl_form" action="/efterat/{{request()->route('id')}}" method="post">
@csrf
<div class="range-wraph" style="width: 100%;">
<label class="custom-range_motet">1. Hur mår du i allmänhet just nu? <br>
<input type="range" name="efterat1" value="{{ old('efterat1') }}" class="range" min="1" max="10"></label>
<output class="bubble"></output>
</div>
<div class="range-wraph" style="width: 100%;">
<label class="custom-range_situationen">2. Hur upplever du nu dina
behov/svårigheter/besvär?<br>
<input type="range" name="efterat2" value="{{ old('efterat2') }}" class="range" min="1" max="10"></label>
<output class="bubble"></output>
</div>
<div class="range-wraph" style="width: 100%;">
<label class="custom-range_situationen">3. Är du nöjd med den hjälp/de åtgärder du fick?<br>
<input type="range" name="efterat3" value="{{ old('efterat3') }}" class="range" min="1" max="10"></label>
<output class="bubble"></output>
</div>
<div class="range-wraph" style="width: 100%;">
<label class="custom-range_situationen">4. Hur mycket har hjälpen/åtgärderna bidragit till
en förbättring?<br>
<input type="range" name="efterat4" value="{{ old('efterat4') }}" class="range" min="1" max="10"></label>
<output class="bubble"></output>
</div>
<div class="range-wraph" style="width: 100%;">
<label class="custom-range_situationen">5. Skulle du ha önskat någon annan hjälp?<br>
<input type="range" name="efterat5" value="{{ old('efterat5') }}" class="range" min="1" max="10"></label>
<output class="bubble"></output>
</div>
<div class="range-wraph" style="width: 100%;">
<label class="form-check-label" for="exampleRadios1">
<input class="form-check-input" type="radio" name="efterat_select"
value="Nej" checked> Nej </label>
</div>
<div class="range-wraph" style="width: 100%;">
<label class="form-check-label" for="exampleRadios1">
<input class="form-check-input" type="radio" name="efterat_select"
value="ja" > Ja, ange vilken hjälp och
varför</label>
</div>
<div class="range-wraph" style="width: 100%;">
<textarea value="{{ old('efterat1_description') }}" name="efterat1_description" class="form-control"></textarea>
@if ($errors->has('efterat1_description'))
<span class="text-danger">{{ $errors->first('efterat1_description') }}</span>
@endif
</div>
<div class="range-wraph" style="width: 100%;">
<p class="bottom_text">Har du några andra synpunkter?</p>
<textarea name="efterat2_description" value="{{ old('efterat2_description') }}" class="form-control"></textarea>
<input type="hidden" name="client_id" value="{{$client_id}}">
@if ($errors->has('efterat2_description'))
<span class="text-danger">{{ $errors->first('efterat2_description') }}</span>
@endif
<p class="bottom_text">Tack för dina svar</p>
<button type="submit" style="width: 100px;" class="btn btn-primary">Skicka</button>
</form>
<script>
const allRanges = document.querySelectorAll(".range-wraph");
allRanges.forEach(wrap => {
const range = wrap.querySelector(".range");
const bubble = wrap.querySelector(".bubble");
range.addEventListener("input", () => {
setBubble(range, bubble);
});
setBubble(range, bubble);
});
function setBubble(range, bubble) {
const val = range.value;
const min = range.min ? range.min : 0;
const max = range.max ? range.max : 100;
const newVal = Number(((val - min) * 100) / (max - min));
bubble.innerHTML = val;
// Sorta magic numbers based on size of the native UI thumb
bubble.style.left = `calc(${newVal}% + (${8 - newVal * 0.15}px))`;
}
</script>
</div>
</div>
</div>
</div>
<!-- /.container-fluid -->
</div>
<!-- /#page-wrapper -->
</div>
<!-- /#wrapper -->
<!-- jQuery -->
@include('layout/footer')
通常,当用户单击浏览器中的后退按钮时,浏览器会尝试显示上一页的内容,而不会重新加载它。因此,它可能不会再次刷新会话,而是浏览器试图通过为您缓存页面来帮助您。我理解这一点,但有任何解决方案可以停止this@farooq,这是浏览器方面的问题。与拉拉维尔无关。您可以禁用“后退”按钮,也可以在单击“后退”按钮时强制重新加载页面这些链接:我不想停止用户返回我只是停止浏览器使用上一页content@farooq,然后在用户单击“上一步”按钮时重新加载页面,这里有很多可能的方法,如果这个答案真的对你的解决方案有帮助,就把它标记为被接受
<?php
namespace App\Http\Controllers;
use App\Efterat;
use DB;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use RealRashid\SweetAlert\Facades\Alert;
class EfteratController extends Controller
{
public function __construct()
{
$this->middleware('preventBackHistory');
$this->middleware('auth');
}
public function index($id)
{
$client_data = $id;
return view('efterat')->with('client_id', $client_data);
}
public function store(Request $request, $id)
{
$validatedData = $request->validate([
'efterat1' => 'required',
'efterat2' => 'required',
'efterat3' => 'required',
'efterat4' => 'required',
'efterat5' => 'required',
'efterat_select' => 'required|in:ja,Nej',
'efterat1_description' => 'nullable|max:150|required_if:efterat_select,ja',
'efterat2_description' => 'nullable|max:150|required_if:efterat_select,ja',
'client_id' => 'required',
'handler_id' => 'nullable',
],
[
'efterat1_description.required_if' => 'fältet krävs när valet är ja',
'efterat2_description.required_if' => 'fältet krävs när valet är ja',
'efterat1_description.max' => 'Beskrivningen får inte vara större än 150 tecken!',
'efterat2_description.max' => 'Beskrivningen får inte vara större än 150 tecken!',
]);
Efterat::create($request->all());
Alert::success('Framgång', 'Framgångsrikt skickat');
if (Auth::user()->role == "clients")
{
return redirect()->to('om/'.$id);
}else{
return redirect()->to('instalningar/'.$id);
}
}
public function efteratreports($id)
{
$data = Efterat::where('client_id', $id)->get();
return view('efteratreports')->with('efteratdata', $data);
}
public function efteratgraph($id)
{
$data = Efterat::where('client_id', $id)->get();
return view('efteratgraph')->with('efteratgraph', $data);
}
}
Route::get('/efterat/{id}', 'EfteratController@index');
Route::post('/efterat/{id}', 'EfteratController@store')->name('efterat');
/* eftrat reports and graph */
Route::get('/efteratreports/{id}', 'EfteratController@efteratreports');
Route::get('/efteratgraph/{id}', 'EfteratController@efteratgraph');