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

时间:2016-09-13 14:30:38

标签: php ajax forms laravel 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!');
            }

我的观点:

  <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请求,但我需要将其与发送到我的电子邮件集成帐户此表单数据。

2 个答案:

答案 0 :(得分:0)

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

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

    //
 }

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

答案 1 :(得分:0)

你可以试试这个。

<强> JS

$(function(){
  $("#myform").submit(function(e){
    e.preventDefault();
    var form = $(this);

    $.ajax({
      type: "POST",
      url: "/my/url/",
      data: form.serialize(),
    });
  });
});

<强>路线

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

<强> HTML

<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
}