Как получать сообщения из базы данных, используя ajax и php - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть простая система обмена сообщениями в PHP, я могу отправлять сообщения в базу данных без обновления страницы, но я также хочу отображать уже отправленные сообщения в базу данных мгновенно, используя ajax, jquery или любую другую метод. (с обеих сторон отправитель и получатель)

my Html:

<form action="" method="post">
   <input autofocus autocomplete="off" name="typed_msg" id="typed_msg" >
   <input type="button" name="submit" id="submit" value="Go" class="btn btn-success">
</form>

Мой JS код:

<script>
 $(document).ready(function(){  
      $('#submit').click(function(){  
           var typed_msg = $('#typed_msg').val();
           var receiver_id = $('#receiver_id').val();
           if(typed_msg == '')  
           {  
                $('#error_msg').html("Message blank!");  
           }  
           else  
           {  
                $('#error_msg').html('');  
                $.ajax({  
                     url:"msg.php",  
                     method:'post',  
                     data:{typed_msg:typed_msg, receiver_id:receiver_id},  
                     success:function(data){  
                          $("form").trigger("reset");  
                          $('#succ_msg').fadeIn().html(data);  
                          setTimeout(function(){  
                               $('#success_message').fadeOut("Slow");  
                          }, 2000);  
                     }  
                });  
           }  
      });  
 });

 </script> 

Код отображения сообщений:

<ul style="list-style:none;width:90%">
<li>
<p>
      <?php
      if($msg_senderID == $_SESSION['id']){?>
         <img src="media/<?php echo $userProfileImg;?>" alt="" style="position:absolute;right:0;margin-top:-5px;margin-left:-70px;">
    <?php      
      } else {?>
         <img src="media/<?php echo $senderImg;?>" alt="" style="margin-top:-5px;margin-left:-70px;">
    <?php
      } 
       
       ?> <?php echo $msg_body;?>
</p>
</li>
</ul>

1 Ответ

0 голосов
/ 10 февраля 2020

Для двустороннего обмена сообщениями веб-сокеты являются наиболее подходящими.

Попробуйте socket.io: https://socket.io/

Это альтернатива для PHP: https://github.com/walkor/phpsocket.io

Вам нужно использовать первый на стороне клиента, поскольку он находится в JS, а второй на стороне сервера. Сначала создайте сокет на стороне сервера и подключите клиентскую сторону к тому же порту. Посмотрите на версию Hello.io для Hello World.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...