Здравствуйте есть такая форма: Код (Text): @extends('layouts.app') @section('content') <form id="contactform" method="post" class="validateform"> <input type="hidden" name="_method" value="PUT"> <input type="hidden" name="_token" value="{{ csrf_token() }}"> {{ csrf_field() }} <div id="sendmessage"> Ваше сообщение отправлено! </div> <div id="senderror"> При отправке произошла ошибка! </div> <div class="row"> <div class="col-lg-4 field"> <input type="text" name="name" placeholder="Введите имя"> </div> <div class="col-lg-12 margintop10 field"> <p> <button class="btn btn-primary margintop10 pull-left" type="submit">Отправить</button> <span class="pull-right margintop20">Заполните поля</span> </p> </div> </div> </form> <script type="text/javascript"> $(document).ready(function(){ $('#contactform').on('submit', function(e){ e.preventDefault(); $.ajax({ type: 'POST', url: {{ route('welcome') }}, data: $('#contactform').serialize(), success: function(result){ console.log(result); } }); }); }); </script> @endsection роуты: Код (Text): Route::get('/', function () { return view('welcome'); }); Route::post('/welcome', 'Ajax\ContactController@send')->name('welcome'); и контроллер: Код (Text): <?php namespace App\Http\Controllers\Ajax; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class ContactController extends Controller { public function send(Request $Request) { dd($request->all()); } } Подскажите почему я получаю сообщение: вместо результата в консоли?
Редиректов никаких нету? Слешь/без слеша, с www на без www или ещё что-то в этом роде? Обычно такое веселье начинается именно из-за них, потому что редиректы бывают только методом GET
ошибка закралась в синтаксис... кавычки там где я указываю url Код (Javascript): <script type="text/javascript"> $(document).ready(function() { $('#contactform').on('submit', function(e){ e.preventDefault(); $.ajax({ type: 'POST', url: "{{ route('welcome') }}", data: $('#contactform').serialize(), success: function(result){ console.log(result); if(result >= 1) { console.log("Такой уже есть"); } else { location.href = "{{ route('type_active.create') }}"; } } }) }) })</script> вот после исправления
Подскажите пожалуйста как правильно сделать что-то в интернете ничего похожего найти не могу. При вводе нового оборудования нужно указать несколько параметров в инпутах, если введенных данных нет в базе данных то предупредить об этом и дать ссылку на заведение такой позиции в БД. Я добавил в route.php - PHP: Route::post('equipment/create', ['as' => 'CreateEquipment', 'uses' => 'Ajax\ContactController@createEquipment']); в createEquipment у меня PHP: $equipment_name = $request->equipment_name; $equipment_count = DB::table('equipments') ->where('name', '=', $equipment_name) ->count(); $equipment_data = array(); $equipment_data['equipment_name'] = $equipment_name; $equipment_data['equipment_count'] = $equipment_count; return $equipment_data; и во view Код (Text): @extends('layouts.app') @section('content') <div class="container"> <p class="h1">Оборудование. Создание.</p> <hr> <form class="form-horizontal" action="#" method="post" id="create_equipment_form_id"> {{ csrf_field() }} <fieldset class="form-horizontal"> <div class="form-group"> <label class="col-sm-4 control-label"> <p class="h4">Наименование оборудования:</p> </label> <div class="col-sm-10"> <div class="input-group mb-3"> <input type="text" name="equipment_name" class="form-control form-control-user" placeholder="Введите наименование оборудования" value="" id="equipment_name_id"> </div> <div class="alert alert-danger" role="alert" id="text_error_equipment_name"> Такая позиция уже существует в базе данных. Проверьте правильность введенного наименования.</a>. </div> </div> </div> <div class="form-group"> <label class="col-sm-4 control-label"> <p class="h4">Тип актива:</p> </label> <div class="col-sm-10"> <div class="input-group mb-3"> <input type="text" name="type_active_id" class="form-control form-control-user" placeholder="Введите тип актива" value="" id="type_active_name_id"> </div> <div class="alert alert-danger" role="alert" id="text_error_type_active_name"> Такая позиция отсутствует в базе данных. Убедитесь в том, что правильно ввели наименование и/или <a href="{{ route('type_active.create') }}" class="alert-link" id="create_type_active_link">перейдите для создания</a>. </div> </div> </div> <div class="form-group"> <div class="col-sm-4 sol-sm-offset-2"> <button class="btn btn-primary" type="submit" id="create_equipment_btn">Создать</button> </div> </div> </fieldset> </form> </div> <script type="text/javascript"> $(document).ready(function() { $('#create_equipment_btn').prop("disabled", true), $("#text_error_equipment_name").hide(), $("#text_error_type_active_name").hide(), $('#equipment_name_id').focusout(function(e){ e.preventDefault(); $.ajax({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, type: 'POST', url: "{{ route('CreateEquipment') }}", data: $('#create_equipment_form_id').serialize(), success:function(result){ if (result.equipment_count >= 1) { console.log(result); $("#text_error_equipment_name").show(); $("#equipment_name_id").removeClass( ); $("#equipment_name_id").addClass("form-control form-control-user inputRed"); } else { console.log(result); $("#equipment_name_id").removeClass(); $("#equipment_name_id").addClass("form-control form-control-user inputGreen"); } } }) }) }) </script> @endsection Если мне нужно проверить второе поле на наличие записи в базе данных что мне делать.? Как я рассуждаю: Ввел я наименование затем проверил нет ли такого в базе, потом независимо от того есть он или нет проверяю второй параметр и т.д. Если такого параметра в базе нет то откроется скрытый алерт со ссылко на заведение такой позиции в БД. Тут все понятно. Одного понять не могу как мне проверить второй и последующие параметры??? т.е. мне нужно прописывать новый роут по идее но с таким же адресом например PHP: Route::post('equipment/create', ['as' => 'TestTypeActive', 'uses' => 'Ajax\ContactController@testTypeActive']); у меня все разваливается. Что в принципе праильно . Как мне пройти этот момент чтобы проверить несколько параметров. И в ajax это должно выглядеть как? $.ajax({}), $.ajax({}), $.ajax({}), $.ajax({}) или как . Очень прошу помощи!!!
Несовсем понял. Роут пост у меня остается один? И куда я должен поместить второй параметр в контроллер и возвращать из него массивом?
@Feonix89, ну типа /data/check?parameter=param1 или /data/check?parameter=param2. Хотя лучше сделай задание этого параметра select-ом и кнопку для создания или ссылку под селектом.