Konstantinos Natsios
Konstantinos Natsios

Reputation: 2924

Laravel 5.5 redirect to url with anchor and with data

In my footer.blade.php i have the following code about subscribing

        <!--Subscription-->
        @if(Session::has('success'))
            <div class="form-group has-success">
                <input class="form-control form-control-success" type="text" id="input-success">
                <div class="form-control-feedback">{{ Session::get('success') }}</div>
            </div>
        @elseif(Session::has('failed'))
            <div class="form-group has-danger">
                <input class="form-control form-control-danger" type="text" id="input-danger">
                <div class="form-control-feedback">{{ Session::get('failed') }}</div>
            </div>
        @else
            {!! Form::open(['route'=>'subscribe.store', 'class' => 'subscribe-form', 'novalidate' => 'novalidate']) !!}
            <div class="clearfix">
                <div class="input-group input-light">
                    {!! Form::email('email', old('email'), ['class'=>'form-control ', 'placeholder'=>'Your e-mail']) !!}
                    <span class="input-group-addon"><i class="icon-mail"></i></span>
                </div>
                <!-- real people should not fill this in and expect good things - do not remove this or risk form bot signups-->
                <div style="position: absolute; left: -5000px;" aria-hidden="true">
                    <input type="text" name="b_c7103e2c981361a6639545bd5_1194bb7544" tabindex="-1">
                </div>
                <button class="btn btn-primary" type="submit">
                    <i class="icon-check"></i>
                </button>
            </div>
            {!! Form::close() !!}
            <span class="form-text text-sm text-white opacity-50">Subscribe to our Newsletter to receive early discount offers, latest news, sales and promo information.</span>
        @endif

In my controller i have the following function which receives the email and subscribes it correctly

public function registerNewsletter( Request $request )

{

    $email = $request->input( 'email' );
    $isSub = Newsletter::hasMember($email);
    if($isSub) {
        return redirect()->back()->with('failed', 'You have been already registered in our Newsletter system.');
    } else {
        Newsletter::subscribe($email);
        return redirect()->back()->with('success', 'You have been registered in our Newsletter system.');
    }

}

Although everything works good, i would like to page to scroll down to the footer because now it reloads and stays on top.

I've found the return redirect()->to(app('url')->previous(). '#hashid');

But there is no way to pass data among the id of the footer.

And also i've tried

return redirect()->back()->with('failed', 'You have been already registered in our Newsletter system.'). '#sitefooter'; and it didn't scroll down.

Any idea or workaround?

Upvotes: 2

Views: 2352

Answers (1)

Alexey Mezenin
Alexey Mezenin

Reputation: 163768

I've just tested this code. It will redirect you, scroll down to the anchor and will pass the data:

session()->flash('someVariable', $someData);
return redirect(url()->previous() . '#hashid');

To get stored data:

$someData = session('someVariable');

Or in a view:

{{ session('someVariable') }}

Upvotes: 4

Related Questions