Я работаю над простым приложением для приватного чата, когда отправляю сообщение выбранному пользователю. поэтому сообщение отправляется отлично, но пользователь получает сообщение о перезагрузке страницы. Как получить данные из базы данных без перезагрузки страницы с помощью 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');