我在mysql上从php检索id时遇到了一些问题,在某种程度上,我发现,id是在某个地方保存(例如:类似于缓存的东西),它保存它并在我不知道时创建一个循环不要求循环。 例如
你可以看到聊天窗口。它显示您正在讲话的用户和在线用户列表。 (喜欢facebook) 这里的问题是,当我切换它说“Nuno Monteiro”聊天消息时。它隐藏了它,并在这种情况下转到id“1”,但如果我点击“Joane”并执行该ID,它将显示为“1”并显示在“2”之后。
当我回到“Nuno”时,我无法再次切换和隐藏,但它给我的身份为“1”,然后是“2”,然后“1”再次“2”就像那样。 我想要的是从函数 callID(id)中选择当前的id,然后选择那个。 下面是代码:
dashboard.php :
<div class="chat-data" id="chat-data" style="display:none;">
<?php
for ($i = 0; $i < count($result); $i++) {
if($result[$i]['online'] == 0) {
echo "<span onclick='callID(".$result[$i]['id'].");' class='user-btn".$result[$i]['id']."' style='padding: 7px; display:inline-block; position: relative; border-bottom: 1px solid #ccc; width: 100%; cursor: pointer;'><span class='offline'></span> ".$result[$i]['firstname']." ".$result[$i]['lastname']."</span>";
} else {
echo "<span onclick='callID(".$result[$i]['id'].");' class='user-btn".$result[$i]['id']."' style='padding: 7px; display:inline-block; position: relative; border-bottom: 1px solid #ccc; width: 100%; cursor: pointer;'><span class='online'></span> ".$result[$i]['firstname']." ".$result[$i]['lastname']."</span>";
}
}
?>
</div>
这是聊天(1)窗口中的部分。
“Nuno Monteiro”窗口的部分也来自 dashboard.php ,其代码如下:
<div class="chat-user" style="display: none;">
<div class='user-title'>
<span class="titles"></span>
<span class='pull-right remove_field'>X</span>
</div>
<div class="chat-time">
<div class="msg_data" id="msg_data">
<div class="friend_pic pull-left">
<img src="<?php echo $domain; ?>resources/img/babox_logo.png" data-toggle="tooltip" data-placement="bottom" title="Nuno Monteiro" />
</div>
<div class="friend">
<span>Hey There are you ok?</span>
</div>
<div class="your_pic pull-right">
<img src="<?php echo $domain; ?>resources/img/babox_logo.png" data-toggle="tooltip" data-placement="bottom" title="You" />
</div>
<div class="you">
<span>I am fine!</span>
</div>
</div>
<div class="msg_box" id="msg_box">
<textarea id="chatbox"></textarea>
</div>
</div>
</div>
$ domain 变量是我获取网站名称的地方,所以我不需要在每个代码中更改它,只在那里更改它。
这是从$db = new DbManager();
获取结果,变量 $ result 将执行选择:$result = $db->execute_select($sql)
$ sql 变量为:"SELECT * FROM users";
然后我们将通过我们的jQuery函数(我在上面提到):
function callID(id) {
$(".chat-time").prop("id",id);
$(".chat-user").hide();
$(".remove_field").click(function() {
$(".chat-user").hide();
});
$.post('callID.php', {id : id }, function(rID) {
// nothing on here
$(".user-title").click(function(e) {
$('#' + rID).toggle();
e.preventDefault();
alert(rID);
});
if(id == rID) {
$(".chat-user").show();
$(".user-title span.titles").html($(".user-btn" + rID).text());
} else {
$(".chat-user").hide();
}
});
}
这是我的 general.js 脚本的一部分。
然后脚本将选择信息到 callID.php :
<?php
include('application/database/dbmanager.php');
$db = new DbManager();
$sql = "SELECT id FROM users WHERE id='".$_POST['id']."'";
$db->execute_select($sql);
echo $_POST['id'];
?>
我想要发生的是,当我在每个用户名上切换在线用户聊天时,只选择该用户的ID,以便稍后我可以将这些消息保存在数据库中并将其取出。