Как получить данные из базы данных без перезагрузки страницы с помощью ajax с использованием laravel? - PullRequest
0 голосов
/ 18 февраля 2020

Я работаю над простым приложением для приватного чата, когда отправляю сообщение выбранному пользователю. поэтому сообщение отправляется отлично, но пользователь получает сообщение о перезагрузке страницы. Как получить данные из базы данных без перезагрузки страницы с помощью ajax, используя laravel?. Есть у кого-нибудь идея? Как это сделать, пожалуйста, помогите мне спасибо.

Контроллер

           public function chataction(REQUEST $request)
           {
           $this->validate($request,
           [
           'message' => 'required', 
           ]);
            $chat_message = $request->get('message');
            $from_user_id=Auth::user()->id;
            $to_user_id =$request->get('myid');
            $user = Auth::user();
            $response = $user->Chats()->create([             
            'chat_message'=>  $chat_message,
            'from_user_id' => $from_user_id,
            'to_user_id'  => $to_user_id,
             ]);    
             $response = array(
             'status' => 'success',
             'msg' => 'Setting created successfully',
              );
              return Response::json($response);  
              }






          public function chat($id)
          {
          $single_chat = User::with('Chats')->where('id',$id)->first();   
          $user_record_msg = User::with('Chat')->where('id',$id)->first();          
          return view('single_chat',compact('single_chat','user_record_msg'));
          }

html просмотр

          // this loop used for from user message
         @foreach($user_record_msg->chat as $user_record_msgs)

          <div class="direct-chat-msg right">
          <div class="direct-chat-infos clearfix">
          <span class="direct-chat-name float-right"></span>
          <h6 class="direct-chat-timestamp float-left">{{$user_record_msgs->message_time}} 
          </h6>
          </div>
          <img class="direct-chat-img" src="{{url('public/assets/dist/img/user1- 
           128x128.jpg')}}" alt="message user image">
           <div class="direct-chat-text">
          {{$user_record_msgs->chat_message}}
           </div>
           </div>
           @endforeach


       // this loop used for to user message
        <!-- Message. Default to the left -->   
        @foreach($single_chat->chats as $single_chats)
        <!-- Message. Default to the left -->
        <div class="direct-chat-msg">
        <div class="direct-chat-infos clearfix">
        <span class="direct-chat-name float-left">{{$single_chat->name}} </span>
        <h6 class="direct-chat-timestamp float-right">{{$single_chats->message_time}}</h6>
        </div>
        <!-- /.direct-chat-infos -->
        <img class="direct-chat-img" src="{{url('public/assets/dist/img/user1- 
        128x128.jpg')}}" alt="message user image">
         <!-- /.direct-chat-img -->
         <div class="direct-chat-text">
         {{$single_chats->chat_message}}
         </div>
         <!-- /.direct-chat-text -->
         </div>
         <!-- /.direct-chat-msg -->
         @endforeach

Ajax

            <script type="text/javascript">
            $(document).ready(function() {
            $("#btnsubmit").click(function(){
            event.preventDefault();
            var form_data = $("#myform").serialize();
            $.ajax({
            type:"POST",
            url:"{{ route('chat.action') }}",
            data: form_data,
            dataType:"json",
            success:function(data)
            {
            setInterval('location.reload()', 1000); 
            }
            });
            });
            });
            </script>

Маршрут

        Route::get('/chat/{id}','HomeController@chat');
        Route::post('chat/action','HomeController@chataction')->name('chat.action');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...