从jQuery和PHP Chat中检索id错误

时间:2017-04-26 18:52:46

标签: javascript php jquery html5 pdo

我在mysql上从php检索id时遇到了一些问题,在某种程度上,我发现,id是在某个地方保存(例如:类似于缓存的东西),它保存它并在我不知道时创建一个循环不要求循环。 例如here in this image

你可以看到聊天窗口。它显示您正在讲话的用户和在线用户列表。 (喜欢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,以便稍后我可以将这些消息保存在数据库中并将其取出。

0 个答案:

没有答案