【发布时间】:2014-06-05 05:55:34
【问题描述】:
我正在进行 php 聊天,但在使用 ajax 检查 mysql 数据库并将数据放入 div 时遇到了一些问题。这是我的代码:
HTML
<div id="chatbox">
<div class="chatheader"><div class="chatheadertext">chatheader</div></div>
<div id="chatcontainer">
<div class="chatpadding">
<div id="chatmessages">
<div class="chat-replies">
<div class="chat-reply-container">
<div class="chat-reply-avatar">
<img src="img/default_avatar.png">
</div>
<div class="chat-reply-chat">
<span class="chat-reply-author">testuser</span><br>
<span class="chat-reply-content">test message goes here</span>
</div>
</div>
</div>
</div>
</div>
<form id="form" action="">
<textarea class="chatchat" id="message" placeholder="Type message here!"></textarea>
</form>
</div>
</div>
JAVASCRIPT
<script>
$(".chatheader").on("click", function () {
$("#chatcontainer").slideToggle();
});
$("textarea").keyup(function(e){
if((e.keyCode ? e.keyCode : e.which) == 13) {
//The enter button has been pressed
}
});
$(function ()
{
$.ajax({
url: 'ajax.php',
data: "",
dataType: 'json',
success: function(data)
{
$('#chatmessages').html("<div class='chat-replies'>
<div class='chat-reply-container'>
<div class='chat-reply-avatar'>
<img src='img/default_avatar.png'>
</div>
<div class='chat-reply-chat'>
<span class='chat-reply-author'>testuser</span><br>
<span class='chat-reply-content'>test message goes here</span>
</div>
</div>
</div>");
}
});
});
</script>
PHP
<?php
$con = mysqli_connect('localhost','root','','chat');
$query = mysqli_query($con,"SELECT * FROM `messages`");
$msgnum = mysqli_num_rows($query);
$array = mysqli_fetch_row($query);
echo json_encode($array);
?>
所以基本上我要做的是使用 ajax 来联系 php 文件,然后该文件将检查 mysql 数据库中的表并将它们编码为 json,在索引页面上,聊天框应该由第一个 javascript功能,但它没有向上滑动。知道这是 ajax 正在执行此操作,特别是 $('#chatmessages').html(); 行。当我从该行中删除代码时,聊天框会出现,但里面是空的。我做错了什么,我该怎么做,以便当它联系时,对于在数据库中找到的每一行,它都会回显
<div class='chat-replies'>
<div class='chat-reply-container'>
<div class='chat-reply-avatar'>
<img src='img/default_avatar.png'>
</div>
<div class='chat-reply-chat'>
<span class='chat-reply-author'>testuser</span><br>
<span class='chat-reply-content'>test message goes here</span>
</div>
</div>
</div>
因此,如果数据库中有 50 行,它将为每一行回显该脚本,并且<div id="chatmessages"> 上会有一个overflow-y:scroll,因此它不会溢出。提前感谢任何可以提供帮助的人!
【问题讨论】:
-
什么时候调用ajax?在哪个活动上?
标签: javascript php jquery mysql ajax