tất cả. Tôi đã xây dựng một chương trình trò chuyện jQuery/PHP đơn giản hoạt động khá tốt. Tuy nhiên, tôi muốn thêm một tính năng như kênh hoặc phòng. Lý tưởng nhất, tôi muốn sử dụng các tab ở phía trên cùng của cuộc trò chuyện để quản lý phòng người dùng đang ở (chỉ có 2). Tôi nghĩ rằng đây sẽ là một nhiệm vụ đơn giản, và tôi đã nhìn thấy một cái gì đó tương tự được thực hiện trước đây, nhưng tôi tiếp tục nhận được lỗi ngoại lệ uncaught khi các tab được nhấp vào, và các nguồn không tải một cách chính xác. Tôi sẽ đăng mã cho toàn bộ hệ thống trò chuyện, bởi vì tôi có cảm giác vấn đề có thể nằm trong đó.ngoại lệ không bắt buộc: Tab giao diện người dùng jQuery: Mã định danh phân đoạn không khớp
các jquery
page = {
getChat: function() {
$.ajax({
url: 'game_src.php',
data: 'mode=getChat',
dataType: 'html',
cache: false,
success: function(res){
$("#chatbox").html(res);
}
});
}
};
$("#submitmsg").click(function(){
var clientmsg = $("#usermsg").val();
$.ajax({
url : 'game_src.php',
data: 'mode=chatSubmit&msg=' + encodeURIComponent(clientmsg)
});
$("#usermsg").attr("value", "");
return false;
});
setInterval(page.getChat, 4000);
$("#chatChannel").tabs({
cookie: { expires: 1 },
});
cơ thể trò chuyện
<?php
if($user->data['user_id'] == ANONYMOUS)
{
}
else
{
?>
<div id="chatChannel">
<ul>
<li><a href="#global">Global</a></li>
<li><a href="#alli">Alliance</a></li>
</ul>
</div>
<form name="message" action="">
<input name="usermsg" type="text" id="usermsg" size="25" />
<input name="submitmsg" type="submit" id="submitmsg" value="Send" />
</form>
<br />
<?php
}
?>
<div id="chatbox" style="border:1px solid black;background-color: rgba(255,255,255,0.3);height:400px;overflow:auto;">
<div id="global">
<?php
$chatMsgs = array();
$limit = time()-86400;
$sql = 'SELECT COUNT(chat_id) as count FROM '.CHAT_TABLE.' WHERE chat_channel = 0 AND chat_time > '.$limit;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$count = $row['count'];
if($count > 0)
{
$sql = 'SELECT * FROM '.CHAT_TABLE.' WHERE chat_channel = 0 AND chat_time > '.$limit.' ORDER BY chat_time DESC';
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$chatMsgs[] = array(
'chat_time' => $row['chat_time'],
'chat_msg' => $row['chat_msg'],
'chat_user' => $row['chat_user'],
'chat_channel' => $row['chat_channel']
);
}
foreach($chatMsgs as $msg)
{
$sql = 'SELECT username FROM '.USERS_TABLE.' WHERE user_id = '.$msg['chat_user'];
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$username = $row['username'];
echo '<div class="chatMsg" style="border-bottom:1px solid black;">';
echo '<div class="chatUsr">'.$username.' says:</div>';
echo '<div class="chatUsrMsg" style="float:left;">'.$msg['chat_msg'].'</div>';
echo '<div class="chatMsgTime" style="float:right;">'.date("g:i a", $msg['chat_time']).'</div>';
echo '</div>';
echo '<br />';
echo '<hr />';
}
}
else
{
echo '<div class="chatMsg">Nothing is heard but the sound of crickets...</div>';
}
?>
</div>
<div id="alli">
<?php
$chatMsgs = array();
$limit = time()-86400;
$sql = 'SELECT COUNT(chat_id) as count FROM '.CHAT_TABLE.' WHERE chat_channel = 1 AND chat_time > '.$limit;
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$count = $row['count'];
if($count > 0)
{
$sql = 'SELECT * FROM '.CHAT_TABLE.' WHERE chat_channel = 1 AND chat_time > '.$limit.' ORDER BY chat_time DESC';
$result = $db->sql_query($sql);
while($row = $db->sql_fetchrow($result))
{
$chatMsgs[] = array(
'chat_time' => $row['chat_time'],
'chat_msg' => $row['chat_msg'],
'chat_user' => $row['chat_user'],
'chat_channel' => $row['chat_channel']
);
}
foreach($chatMsgs as $msg)
{
$sql = 'SELECT username FROM '.USERS_TABLE.' WHERE user_id = '.$msg['chat_user'];
$result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result);
$username = $row['username'];
echo '<div class="chatMsg" style="border-bottom:1px solid black;">';
echo '<div class="chatUsr">'.$username.' says:</div>';
echo '<div class="chatUsrMsg" style="float:left;">'.$msg['chat_msg'].'</div>';
echo '<div class="chatMsgTime" style="float:right;">'.date("g:i a", $msg['chat_time']).'</div>';
echo '</div>';
echo '<br />';
echo '<hr />';
}
}
else
{
echo '<div class="chatMsg">Nothing is heard but the sound of crickets...</div>';
}
?>
</div>
</div>
Tôi sẽ để thêm một tham số cho hàm getChat jquery để chuyển đổi qua lại, nhưng với những gì tôi có, i' m bị kẹt. ai đó có thể chỉ cho tôi phương hướng đúng không?
Trong mã của tôi, div được lồng đúng. nơi nào khác có thể là vấn đề? – softwareplay