私はphpとlaravelの初心者です。私は最近、自分のウェブサイトの一番下にフォームを作成しました。送信ボタンをクリックすると、データが電子メールアドレスに送信されます。Laravel PHP、idにリダイレクトしようとしています
ただし、正しく入力して送信をクリックしないと、ページが最新表示され、ページの上部に戻ります。フォームを正しく送信すると、/ contactに行きます。
私は、スクリーンをリフレッシュするのではなく、ウェブページ上の同じ位置に(画面上のフォームを使用して)ページを維持することを迫られています。フォームが正しく提出された場合と同じですが、画面は依然として維持したいと思います。
ルート/ web.php:
Route::get('/', '[email protected]');
Route::get('about', '[email protected]');
Route::get('contact',
['as' => 'contact', 'uses' => '[email protected]']);
Route::post('contact',
['as' => 'contact_store', 'uses' => '[email protected]']);
ContactFormRequest.php:
<?php
namespace App\Http\Requests;
use Illuminate\Foundation\Http\FormRequest;
class ContactFormRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'name' => 'required',
'email' => 'required|email',
'number' => 'required',
'message' => 'required',
];
}
}
AboutController.php:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests\ContactFormRequest;
class AboutController extends Controller
{
public function create()
{
return view('pages.contact');
}
public function store(ContactFormRequest $request)
{
\Mail::send('emails.contact',
array(
'name' => $request->get('name'),
'email' => $request->get('email'),
'number' => $request->get('number'),
'user_message' => $request->get('message')
), function($message)
{
$message->from('[email protected]');
$message->to('[email protected]', 'Admin')->subject('Testing');
});
return \Redirect::route('contact')->with('message', 'Thanks for contacting us!');
}
}
contact.blade.php
<div class="one-half">
<ul>
@foreach($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
{!! Form::open(array('route' => 'contact_store', 'class' => 'form')) !!}
<div class="form-group">
{!! Form::text('name', null,
array('required',
'class'=>'form-control',
'placeholder'=>'Your name')) !!}
</div>
<div class="form-group">
{!! Form::text('email', null,
array('required',
'class'=>'form-control',
'placeholder'=>'Your e-mail address')) !!}
</div>
<div class="form-group">
{!! Form::number('number', null,
array('required',
'class'=>'form-control',
'placeholder'=>'Your Number')) !!}
</div>
<div class="form-group">
{!! Form::text('message', null,
array('required',
'class'=>'form-control',
'placeholder'=>'Your message')) !!}
</div>
<div class="form-group">
{!! Form::submit('Contact Us!',
array('class'=>'form-button btn btn-primary')) !!}
</div>
{!! Form::close() !!}
</div>
私もstackoverflowを使用することに新しいので、私は何かを見逃したり、間違って何かをした場合は、先にお詫びします。もっと必要なものがあれば教えてください。
こんにちはアルトゥルLaravel 5.3を使用している場合は、あなたの答えをありがとうございました。私はストアメソッドにそのコードを追加して、以前と同じようにしました。ただし、「ページを更新せずにフォームをサブミット/検証する必要があるようです。そのための唯一の解決策はAJAXリクエストを使用することです」これは正しいので、私はAJAXリクエストを調べます。ありがとう。 – dannyf
ようこそ。 –