javascript - 如何使用 ajax 和 php 从数据库中获取消息
问题描述
我有一个简单的 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:https://socket.io/
它是 PHP 的替代方案:https ://github.com/walkor/phpsocket.io
您需要将第一个用于客户端,因为它在 JS 中,而第二个用于服务器端。首先在服务器端创建套接字并将客户端连接到同一端口。查看 socket.io 的 Hello World 版本。
推荐阅读
- android-studio - Kotlin - 我收到错误,因为 id 为空。如何解决?
- flutter - Progect 显示错误,无法选择模拟器
- python - 在python中将一个组划分为n并为每个组添加块号
- visual-studio - 我可以在自己的静态库项目中包含现有的静态库吗?
- pandas - 通过 DataFrame 进行模糊匹配和迭代
- databricks - Azure Databricks - 无法创建符号链接
- mqtt - 使用 mosquitto.h 和 test.mosquitto.org 在端口 8883 上进行 MQTT SSL 加密
- javascript - 尝试根据单击的颜色 btn 更改动画
- javascript - Django 从 URL 渲染 json 并自动更新
- javascript - onchange 不同的选择元素不同的结果