Невозможно передать данные в контроллер laravel из ajax - PullRequest
0 голосов
/ 06 февраля 2019

Я застрял в этой проблеме на два дня. У меня нет ни одного эксперта с 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']));

}

Ответы [ 3 ]

0 голосов
/ 06 февраля 2019

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

$("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(); конец контроллера

0 голосов
/ 06 февраля 2019

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

0 голосов
/ 06 февраля 2019

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

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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...