Не удается передать данные в контроллер laravel из ajax

Я застрял в этой проблеме на два дня. У меня нет ни одного эксперта с ajax laravel. Мне не удается отправить данные в файл контроллера из ajax. Если кто-нибудь, пожалуйста, помогите мне. Я буду благодарен.

Вот маршрут

Route::get('/',"PostController@index");
Route::post('addpost','PostController@addpost');

Вот форма

<form>
                {{csrf_field()}}
                    <label for = "title">Title</label>
                    <input type = "text" name = "title"><br>
                    <label for = "body">Body</label>
                    <textarea row= "6" name = "body"></textarea><br>
                    <button class = "btn btn-info" name = "submit" id= "add" type = "submit" value = "submit">Add</button>
         </form>

Вот код jquery.

    <script>
        $(document).ready(function(){
            $("#add_new_post").hide();
            $("#newpost").click(function(){
                $("#add_new_post").show();
                $(this).hide();
            });
            $("form").on('#submit', function(event){
                event.preventDefault();
                $.ajax({
                    type : 'POST',
                    url  : "{{url('/addpost')}}",
                    data :{
                        '_token': $('input[name=_token]').val(),
                        'title': $('input[name = title]').val(),
                        'body' : $('input[name = body]').val(),
                    },
                    success: function(data){
                    alert("Test Completed")
              window.location.href = "{{('/home')}}";
                    },
                });
            });
        });
    </script>

Вот код контроллера БД не получает данные.

    public function addpost(Request $request){
    $data=array();
    $data['title'] = $request->title;
    $data['body'] = $request->body;
    Post::insert(array('title'=>$data['title'],'body'=>$data['body']));

}
on('submit', или on('#submit'? это должен быть on('submit',
Vel 06.02.2019 12:50

есть ли ошибка, которую вы получаете?

Ari 06.02.2019 12:53

Вы пропустили: $post->save(); в конце контроллера

Ashu 06.02.2019 13:03
Как конвертировать HTML в PDF с помощью jsPDF
Как конвертировать HTML в PDF с помощью jsPDF
В этой статье мы рассмотрим, как конвертировать HTML в PDF с помощью jsPDF. Здесь мы узнаем, как конвертировать HTML в PDF с помощью javascript.
1
3
134
3

Ответы 3

Обновленный скрипт

on('submit', или on('#submit'? это должен быть on('submit',

 <script>
        $(document).ready(function(){
            $("#add_new_post").hide();
            $("#newpost").click(function(){
                $("#add_new_post").show();
                $(this).hide();
            });
            $(document).on('click', '#add', function(event){
                event.preventDefault();
                $.ajax({
                    type : 'POST',
                    url  : "{{url('/addpost')}}",
                    data :{
                        '_token': $('input[name=_token]').val(),
                        'title': $('input[name = title]').val(),
                        'body' : $('input[name = body]').val(),
                    },
                    success: function(data){
                    alert("Test Completed")
              window.location.href = "{{('/home')}}";
                    },
                });
            });
        });
    </script>

Контроллер

public function addpost(Request $request){ 
        $post = new Post();
        $post->title = $request->title;
        $post->body = $request->body;
        $post->save();
}

Вы правы, но БД не получает данные. У меня новая модификация в controller.public function addpost(Request $request){ $data=array(); $data['title'] = $request->title; $data['body'] = $request->body; Post::insert(array('title'=>$data['title'],'body'=>$data['bo‌​dy'])); }

Imran 06.02.2019 13:00

попробуй этот public function addpost(Request $request){ $post = new Post(); $post->title = $request->title; $post->body = $request->body; $post->save(); }

Vel 06.02.2019 13:07

у вас есть модель Post?

Vel 06.02.2019 13:26

Я обновил свой код javascript. Пожалуйста, проверьте обновленный код.

Vel 06.02.2019 13:31

Ваше событие неверно:

$("form").on('#submit', function(event){});

Использовать :

$("form").on('submit', function(event){});

или Событие $(document).on('click',"#app",function(e){e.preventDefault();//prevent submit}); или использовать

<button type = "button"> & $(document).on('click',"#app",function(){});

Также добавьте: $post->save(); конец контроллера

используйте $("form").on('submit', function(event){}); вместо $("form").on('#submit', function(event){});

Другие вопросы по теме