的index.php
<?php
include_once ('Messages.php');
$object = new Messages();
$object->NewMessage($nick, $message); // INSERT NEW MESSAGE TO DATABASE
$object->ShowMessage(); // SHOWS MESSAGES FROM DATABSE
?>
Leave a message:
<form method = 'POST'>
<textarea name='message'></textarea><br>
<input type='submit' name='submit' value='Send'>
</form>
Messages.php
<?php
include_once('../login/connect.php');
class Messages {
private $db;
public function __construct(){
$this->db = new Connect();
$this->db = $this->db->DbConnect();
}
// INSERT NEW MESSAGE TO DATABASE
public function NewMessage($nick, $message){
if (isset($_POST['submit'])) {
$message = $_POST['message'];
if(!empty($message)){
$nick = $_SESSION['nickname'];
$userid = $this->db->prepare("SELECT id FROM users WHERE name=?");
$userid->bindParam(1, $nick);
$userid->execute();
foreach($userid as $userid1){
$userid = $userid1['id'];
}
$st = $this->db->prepare("INSERT INTO bericht (message, uid) VALUES (?,?)");
$st->bindParam(1, $message);
$st->bindParam(2, $userid);
$st->execute();
} else {
echo 'Please enter a message!';
}
}
}
//SHOW ALL NICKNAME/MESSAGE FROM DATABASE
public function ShowMessage() {
$st = $this->db->query("SELECT * FROM bericht");
$stt = $this->db->query("SELECT * FROM users");
foreach($stt as $uhu){
foreach ($st as $bericht){
$nicknames = $bericht['uid'];
$nick = $this->db->prepare("SELECT name FROM users WHERE id=?");
$nick->bindParam(1, $nicknames);
$nick->execute();
foreach ($nick as $nick1){
$nick = $nick1['name'];
$image = $uhu['foto'];
$a = $this->db->prepare("SELECT users FROM users WHERE name=?");
$a->bindParam(1, $nick);
$a->execute();
foreach($a as $b){
$image = $b['foto'];
}
echo "<b>". $nick . ": </b>";
echo $bericht['message'].'<br>';
}
}
}
}
}
?>
http://pastebin.com/BPWjXpt1 // MESSAGES.PHP上面的代码
消息存储在数据库中。
现在,每当有人发布新消息时,都需要重新加载页面才能看到新消息。
我想知道当有人发布消息而没有刷新以查看新消息时,如何直接获取新消息。
我尝试过使用AJAX,但由于我的知识有限,我无法正常工作。
我可以下载一个已经由网络上某人编写的聊天框,但这对我不了解。
我希望有人可以帮我这个(我不想让TimeRut的AutoReloadPage()函数每次都重新加载页面。)
答案 0 :(得分:3)
你的第一个猜测是正确的,为了避免重新加载页面Ajax是要走的路,没有办法解决它,我强烈建议你深入研究它。阿贾克斯可能很难学,但它真的不那么可怕。
实现ajax以发送新消息相对容易。
实现ajax以检查服务器上的任何人是否发布了新消息,然后为所有用户更新DOM,这有点难度,您需要轮询服务器并检查更改< / p>