AJAX Laravel -发送表单数据到电子邮件


AJAX Laravel - Send form data to email

  Now i send my form data to email account, exemple@google.com, using function: 

         public function ContactExemple()
            {
                $email = Input::get('email');
                $subiect = Input::get('phone');
                Mail::send('email', [
                    'name'=>Input::get('name'),
                    'email'=>$email,
                    'phone'=>$phone,
                    'msg'=>Input::get('msg')
                ], function($m) use($email, $subiect) {
                    $m->from($email);
                    $m->to(' exemple@google.com')->subject($subiect);
                });
                return Redirect::to(URL::previous() . "#contact_form")->with('message', 'THANKS FOR YOUR MSG!');
            }

And my VIEW:

  <form action="{{url('/'.$lang)}}" method="POST" >
                <input type="hidden" name="_token" value="{{ csrf_token() }}"> {!! csrf_field() !!}
    <input type="text"  name="name">
    <input type="email" name="email" type="email">
    <input type="text" name="phone" type="text">
    <textarea name="msg"></textarea>
                   <input type="submit" value="submit" name="submit">     </input>
                 @if(Session::has('message')) <p class="alert alert-info">    {{Session::get('message')}} </p> @endif
  </form>

路线:

 Route::get('/', 'HomeController@index');
 Route::post('/', 'HomeController@ContactExemple');

我需要使用AJAX做到这一点,但找不到任何可以帮助我做到这一点,有很多简单的AJAX post请求的例子,但我需要将其与发送到我的电子邮件帐户此表单数据集成。

首先你需要改变你从控制器接收数据的方式来访问post数据用js从视图发送它,应该是这样的:

 public function store(Request $request)
 {
    $name = $request->input('name');
    //
 }

你应该检查文档,看看你应该如何处理这些数据https://laravel.com/docs/5.3/requests

你可以试试这个

JS

$(function(){
  $("#myform").submit(function(e){
    e.preventDefault();
    var form = $(this);
    $.ajax({
      type: "POST",
      url: "/my/url/",
      data: form.serialize(),
    });
  });
});
<

路线/strong>

Route::post('/my/url/','HomeController@conatact_example');

<form id="myform" method="POST" >
  <input type="hidden" name="_token" value="{{ csrf_token() }}"> {!! csrf_field() !!}
  <input type="text"  name="name">
  <input type="email" name="email" type="email">
  <input type="text" name="phone" type="text">
  <textarea name="msg"></textarea>
  <input type="submit" value="submit" name="submit"></input>
  @if(Session::has('message')) <p class="alert alert-info">{{Session::get('message')}} </p> @endif
</form>

HomeController.php

public function conatact_example(Request $request){
   $name = $request->input('name');
   // your logic
}