在没有框架的情况下更改数据库后刷新网页?通讯应用

时间:2018-11-02 00:25:53

标签: php mysql mysqli

在没有框架的情况下对数据库进行更改时是否可以刷新网页?我试图寻找答案,但似乎都包括某种类型的框架来完成此任务。除非完全必要,否则我不喜欢学习新框架。我正在尝试制作一个消息传递应用程序。我可以接收其他人的登录消息,但前提是必须刷新页面。是否有解决方案,或者采取其他方法?学习一个框架对实现这一目标是否完全必要?这是我的代码,用于打印从另一个用户发送的消息,在这种情况下,我为另一个用户的帐单命名:

<?php
$conn = new mysqli($server_name,$server_username,$server_password,$dbname);

$bill = $conn ->query("SELECT message_sent FROM message WHERE name = 'bill'");
while($row = $bill->fetch_assoc())
{
    echo $row["message_sent"];
}
?>

1 个答案:

答案 0 :(得分:0)

您只需使用2个文件即可完成此操作-index.php显示HTML页面,而get_messages.php提供最新消息。

这确实使用了jQuery to do the server-side fetching,但是它更多的是库而不是框架;)

index.php HTML页面每3秒向get-messages.php发送一个请求,用任何新消息更新页面。

服务器端脚本get_messages.php还会随机创建消息,因此您可以看到即时结果...一旦看到实际效果,就可以删除// --- BEGIN FAKE MESSAGE CREATION --- //和{{ 1}}注释,并在适当的位置添加您自己的数据库代码。

希望我已经添加了足够的注释来解释发生的事情,发生的地点和原因!

index.php

// --- END FAKE MESSAGE CREATION --- //

get_messages.php

<?php

// --- BEGIN FAKE MESSAGE CREATION --- //
session_start();
unset( $_SESSION[ 'messages' ] );
// --- END FAKE MESSAGE CREATION --- //

?>
<!--DOCTYPE HTML -->
<html>
<head>
<meta charset="utf-8">
<title>Messages</title>
<!-- Load jQuery -->
<script src="https://code.jquery.com/jquery-3.3.1.min.js"
        integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
        crossorigin="anonymous"></script>
</head>
<body>

<h1>Messages</h1>

<!-- This <div> is where messages will be displayed -->
<div id="message_list"></div>

<script>
function get_messages() {
  // Load messages from the server
  $.ajax({
    url: 'get_messages.php',
    success: function(result){
      // Insert the result into <div id="message_list">
      $("#message_list").html(result);
    }
  });
}

// Wait for the page to load...
$(document).ready( function() {
  // Get messages straight away
  get_messages();
  // Call get_messages() every 3 seconds
  setInterval( get_messages, 3000 );  
});
</script>

</body>
</html>

我知道这不是最优雅的解决方案,但是希望这是一个简单的示例-一种改进是仅返回新消息,并将它们附加到现有列表中(以节省带宽等)...但我会留给您找出答案!