【发布时间】:2020-05-25 10:19:20
【问题描述】:
我有一个简单的 PHP 消息系统,我可以在不刷新页面的情况下将消息发送到数据库,但是,我还想使用 ajax、jquery 或任何其他方法立即显示已经发送到数据库的消息。 (发送者和接收者双方)
我的 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>
【问题讨论】:
-
对于双向消息传递,Web Sockets 是最合适的。试试socket.io:socket.io
-
感谢您的建议,是否有任何简单的启动指南(添加到现有项目)?
-
我自己从未真正使用过它,但它似乎只适用于nodejs。 PHP 的替代方案是github.com/walkor/phpsocket.io
-
谢谢,我一定会尝试使用这个
标签: javascript php jquery database