Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

user_666's avatar

AJAX - Send form data to email

Now i send my form data to email account, [email protected], 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(' [email protected]')->subject($subiect);
});
return Redirect::to(URL::previous() . "#contact_form")->with('message', 'THANKS FOR YOUR MSG!');
}

And my VIEW:

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

{{Session::get('message')}}

@endif <----/form>

Routes:

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

I need to do this using AJAX, but can't find anything that can help me to do this, there is a lot of examples with simple ajax post request, but i need to integrate it with sending to my email account this form data. Or in this way but WITHOUT REFRESHING PAGE, and place a success message.. Thanks !

0 likes
2 replies
JoolsMcFly's avatar

Look into jQuery ajax method: http://api.jquery.com/jQuery.post/

var $form = $('#your-form-id'); // cache
var data = {
  email: $form.find('[name="email"]'),
  phone: $form.find('[name="phone"]'),
  name: $form.find('[name="name"]'),
};
$.ajax({
  type: "POST",
  url: 'yoururlhere.com/email',
  data: data
});
1 like
michaelmcdonald's avatar

Laravel 5.5 Working Solution

FILE:
routes/web.php


Route::resource('betafeedback', 'MailController');
Route::post('mail/sendfeedback', ['as' => 'mail.sendfeedback', 'uses' => 'MailController@sendfeedback']);

FILE:
Http/Controllers/MailController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Mail;
use Auth;



class MailController extends Controller
{

    public function __construct()
    {
        $this->middleware('auth');
    }

    public function index(){
        return view('email.betafeedback');
    }


    public function sendfeedback(Request $request)
    {
        $subject = 'Beta Testing Feedback';

        $msg = $request->get('feedback');

        $from = Auth::user()->email;

        $html = '<h1>Beta Testing Feedback</h1><br>'.$msg;

        Mail::send([], [], function ($message) use ($html, $subject, $from, $msg) {
            $message->to('[email protected]','Beta Testing Feedback')
            ->subject($subject)
            ->from($from)
            ->setBody($html, 'text/html');


        });


     }


    }

FILE:
email/betafeedback.blade.php

@extends('layouts.master')
@section('content')
<div class="row">
    <div class="col-lg-12">
            <div class="card card-outline-info">
            <div class="card-block">
                <form action="{!! route('mail.sendfeedback') !!}" id="betafeedback">
                    <div class="form-body" style="font-weight:400">
                        <div class="row">
                            <div class="col-sm-12">
                                <div class="form-group error" style="color: #8c001a;font-weight: 400">&nbsp;
                                </div>
                            </div>
                        </div>
                      
                        <div class="row">
                            <div class="col-sm-7">
                                <div class="form-group">
                                    <label>Feedback</label>
                                    <textarea rows="3" type="text" name="feedback" id="feedback" maxlength="100" class="form-control" value="" autocomplete="off"></textarea> 
                                </div>
                            </div>
                        </div>
                    </div>                        

                            
                    <div class="form-actions">
                        <button type="submit" class="btn btn-primary"> <i class="fa fa-check"></i> Send Feedback</button>
                    </div>
                </div>
                </form>
            </div>
        </div>
    </div>
</div>
@endsection

@section('js')

<script>
    $("#betafeedback").submit(function(event) {
        event.preventDefault();
        $.ajaxSetup({
            headers: {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
            }
        });

        var feedback = $('#feedback').val();
        if(feedback === ''){
            $(".error").html('Please enter some feedback...');
            return false;
        }

        formdata = new FormData($(this)[0]);

        $.ajax({
            url: $(this).attr('action'),

            contentType: false,
            processData: false,
            data: formdata,
            type: 'POST',

            success: function(response)
             {

 
                    $(".error").css('color', 'green');
                    $(".error").html('Thanks For Your Feedback !');
                

            },

        });
        return false;
    });
</script>

@endsection


Please or to participate in this conversation.