我需要每隔一秒左右更新一个消息框,我真的不知道该做什么,我也做了大部分编码与我在网上找到的不同,继承我的代码
<?php
//first connect to the database
require_once('includes/connect.php');
$sql = "SELECT * FROM `MetalM` WHERE `class` LIKE :msg";
$paragraph = $pdo->prepare($sql);
$paragraph->bindValue(':msg','Message',PDO::PARAM_STR);
$paragraph->execute();
?>
这是我的连接代码
<?php
try
{
$pdo = new PDO('mysql:host=localhost;dbname=DATABASE', 'USER',
'PASSWORD');
}
catch (PDOException $e)
{
echo 'Unable to connect to the database server.';
exit;
}
?>
这是我的邮件加载位置的代码
<div id="mesgBox">
<?php
foreach ($paragraph as $key) {
echo '<div id="messages"><p>'.$key['Name'].': <br>'.$key['Message'].'</p></div>';
}
?>
</div>
<div id="sndmsg">
<h1>Message:</h1>
<form action="insert.php" method="GET">
<input id="meassage" name="meassage" type="text" placeholder="Text Here">
<input id="submit" type="submit" value="Send">
</form>
<br>
</form>
</div>
答案 0 :(得分:0)
您需要使用Ajax执行此操作。
您需要设置一个定时器,每隔x秒检索一次新数据
例如:
要求:jQuery
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
setInterval(function(){
$.post ('/get-update.php', function(data,success)
{
if (success=='success')
if (data.status=='ok')
$('#messages').html(data.Messages);
},'json');
},5000);
</script>
现在,你必须稍微更改你的php才能使这项工作。
- 编辑 -
好的,让我改进..
你需要在头脑中包含jquery lib
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
然后你将需要一个php文件,它完全符合你的需要....(带来新消息)
如:
<?php
// file name: get-update.php
// Just this code here.
require_once('includes/connect.php');
$sql = "SELECT * FROM `MetalM` WHERE `class` LIKE :msg";
$paragraph = $pdo->prepare($sql);
$paragraph->bindValue(':msg','Message',PDO::PARAM_STR);
$paragraph->execute();
$TextBuffer ="";
$StringFormat = "<div id='messages'><p>%s : <br>%s</p></div>";
while ($row = $paragraph->fetch(PDO::FETCH_ASSOC))
$TextBuffer .= sprintf($StringFormat, $row['Name'],$row['Messagge']);
echo json_encode(array("status"=>"ok","Messages"=>$TextBuffer));
?>