Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php AJAX代码突然停止工作_Php_Jquery_Ajax - Fatal编程技术网

Php AJAX代码突然停止工作

Php AJAX代码突然停止工作,php,jquery,ajax,Php,Jquery,Ajax,所以我一直在聊天,在14:09它工作正常,它显示消息,接收它们并将它们存储在数据库中。它还显示存储的消息,并立即向用户显示消息。然而,它突然停止显示所有信息。我已经检查过了,消息在发送时存储在数据库中。我不知道错误是什么,因为我没有改变代码来影响它。如果你能帮我做这件事,那会很有帮助的!:) php(包括AJAX jQuery和表单) $('#chat')。提交(函数(e){ e、 预防默认值(); 变量形式=$(“#聊天”), url=form.attr('action'), 消息=$(“

所以我一直在聊天,在14:09它工作正常,它显示消息,接收它们并将它们存储在数据库中。它还显示存储的消息,并立即向用户显示消息。然而,它突然停止显示所有信息。我已经检查过了,消息在发送时存储在数据库中。我不知道错误是什么,因为我没有改变代码来影响它。如果你能帮我做这件事,那会很有帮助的!:)

php(包括AJAX jQuery和表单)



$('#chat')。提交(函数(e){ e、 预防默认值(); 变量形式=$(“#聊天”), url=form.attr('action'), 消息=$(“#消息”); $.post(url,{Message:Message.val()},函数(数据){ $('#messageDisplay').html(数据); $('#Message').empty().val(''); }); setInterval(函数(){ //每2秒钟做一次 { $.get(“data.php”).done(函数(数据){ $('#messageDisplay').html(数据); }); } }, 1000); });
shout.php(发送消息并添加到数据库)


php(具有从DB检索消息的循环的文件)


未调用您的page data.php。内容包括:

[05/09/2013 10:37:31 AM]测试:测试 [05/09/2013 10:37:44 AM]测试:测试

因此,它们被正确地插入;但是,当用户单击“Shout”时,它不会调用
setInterval()

编辑:您的问题是,在他们登录后,不会调用setInterval()。如果您在登录后刷新页面,它将正常工作(对我有效)

试试这个:

$(document).ready(function() {
    $('#chat').submit(function(e) {  
        e.preventDefault();  
        var form = $('#chat');
        url = form.attr('action'); 
        Message = $('#Message');
        $.post(url, {Message : Message.val()}, function(data) {  
            $('#messageDisplay').html(data);  
            $('#Message').empty().val('');                                    
        });

        setInterval(function() {
        // Do something every 2 seconds
            $.get("data.php").done(function(data) {
                $('#messageDisplay').html(data);
            });
        }, 1000);
    });

    <?php if (isset($_SESSION['Username'])) { ?>
        setInterval(function() {
        // Do something every 2 seconds
            $.get("data.php").done(function(data) {
                $('#messageDisplay').html(data);
            });
        }, 1000);
    <?php } ?>
});
$(文档).ready(函数(){
$('#chat')。提交(函数(e){
e、 预防默认值();
变量形式=$(“#聊天”);
url=form.attr('action');
消息=$(“#消息”);
$.post(url,{Message:Message.val()},函数(数据){
$('#messageDisplay').html(数据);
$('#Message').empty().val('');
});
setInterval(函数(){
//每2秒钟做一次
$.get(“data.php”).done(函数(数据){
$('#messageDisplay').html(数据);
});
}, 1000);
});
setInterval(函数(){
//每2秒钟做一次
$.get(“data.php”).done(函数(数据){
$('#messageDisplay').html(数据);
});
}, 1000);
});

你的控制台怎么说?你在哪里创建
$\u会话['Username']
变量?也许这就是问题所在。会话通常会持续一段时间,然后被删除。@tymeJV,在我的本地服务器上,它工作正常,从data.php文件捕获数据并显示。在网上它没有。在conolse one我的本地服务器中,它会在线获取数据。php不会。AlejandroIván,用户登录时会存储这些数据,注销时会删除这些数据。“在conolse one我的本地服务器中,它会在线获取数据。php不会”这是你的问题。转到网络面板,查看AJAX调用的错误代码和响应。请参阅我的更新。在我登录后刷新页面后,它对我有效。为什么我刷新页面时,它不会显示一切都正常?我不知道你的意思。刷新时,它将仅向登录的用户显示消息。这不是你想要的吗?不,我的意思是当我记录它并点击F5时,所有的消息都会消失,有什么想法吗?这些消息会消失,因为默认情况下容器是空的。在您登录后,它们应该会重新出现。他们不是又出现了吗?他们是为我做的。
<?php

include 'auth.login.php';
include 'pdo.config.php';

if (!isset($_SESSION['Username'])) {
echo '<br/>';
echo '<center>You need to login to post!<br/>';
header("Refresh:2; URL=index.php");
exit();
}

if (!isset($_POST['Message']) || empty($_POST['Message'])) {
echo '<br/>';
echo '<center>Message box empty!<br/>';
exit();

}

$Username = $_SESSION['Username'];

$Message = htmlspecialchars(trim($_POST['Message']));

$insertMessage = $PDO->prepare("INSERT INTO `chatbox` (User, Message) VALUES (?, ?)");
$insertMessage->bindParam(1, $Username, PDO::PARAM_STR);
$insertMessage->bindParam(2, $Message, PDO::PARAM_STR);
$insertMessage->execute();


?>
<?php

include 'pdo.config.php';

$chat = $PDO->query("SELECT * FROM `chatbox`");

while($getRow = $chat->fetch(PDO::FETCH_ASSOC)) {  
     echo '['.date('d/m/Y g:i:s A',  strtotime($getRow['SentOn'])).'] '.$getRow['User'].': '.stripslashes($getRow['Message']).'<br/>';  
}

?>
$(document).ready(function() {
    $('#chat').submit(function(e) {  
        e.preventDefault();  
        var form = $('#chat');
        url = form.attr('action'); 
        Message = $('#Message');
        $.post(url, {Message : Message.val()}, function(data) {  
            $('#messageDisplay').html(data);  
            $('#Message').empty().val('');                                    
        });

        setInterval(function() {
        // Do something every 2 seconds
            $.get("data.php").done(function(data) {
                $('#messageDisplay').html(data);
            });
        }, 1000);
    });

    <?php if (isset($_SESSION['Username'])) { ?>
        setInterval(function() {
        // Do something every 2 seconds
            $.get("data.php").done(function(data) {
                $('#messageDisplay').html(data);
            });
        }, 1000);
    <?php } ?>
});