Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.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 jQuery:自动刷新a`<;部门>`_Php_Jquery_Codeigniter - Fatal编程技术网

Php jQuery:自动刷新a`<;部门>`

Php jQuery:自动刷新a`<;部门>`,php,jquery,codeigniter,Php,Jquery,Codeigniter,我无法使用jQuery自动更新此。它本质上是一种聊天功能,每两秒钟刷新一次页面。我已经尝试了这方面的一些变化,但没有运气,所以完全不同地重写它是非常受欢迎的 jQuery代码: function updateChat() { $.get("chat_data.php", function(data) { $("div#chattable").html(data); }); window.setTimeout("updateChat();", 2000);

我无法使用jQuery自动更新此
。它本质上是一种聊天功能,每两秒钟刷新一次页面。我已经尝试了这方面的一些变化,但没有运气,所以完全不同地重写它是非常受欢迎的

jQuery代码

function updateChat() {
    $.get("chat_data.php", function(data) {
        $("div#chattable").html(data);
    });

    window.setTimeout("updateChat();", 2000);
}

$(document).ready(function() {
    updateChat();
});
下面是
代码,它从
chat\u data.php
获取数据。这应该是最新的:

<div id="chattable">
    <?php include("js/chat_data.php"); ?>
</div>

chat_data.php

<?php foreach($query->result() as $row):
    echo "<div class='chatrow'>";
    echo "<div class='chattime'>".date("[M.d] g:ia",strtotime($row->time))."</div>";
    echo "<div class='chatnamematch'>[".$row->name."]</div>";
    echo "<div class='chatbody'>".$row->body."</div>";
    echo "</div>";
endforeach; ?>

一切看起来都应该正常运行。$.get中的URL是否需要是“js/chat_data.php”而不是“chat_data.php”


另外,我将把php包含从div中去掉,因为它将通过AJAX加载。

一切看起来都应该正常工作。$.get中的URL是否需要是“js/chat_data.php”而不是“chat_data.php”


另外,我将把php include从div中去掉,因为它将通过AJAX加载。

一些想法和另一个代码示例。很难说你的问题在哪里,所以这些只是一些想法

  • 您可以将等待移到PHP,而不是使用javascript计时器重新执行

  • 尝试使用更简单的jQuery.load()方法

在PHP方面

  sleep(2); // sleep for two seconds before returning output
效果类似,但简化了一点。直到返回输出,才会调用updateChat()函数


嗯,只是个主意。不确定它是否是正确的解决方案,但它可以帮助您隔离问题(去掉js timer变量)。

一些想法和一个替代代码示例。很难说你的问题在哪里,所以这些只是一些想法

  • 您可以将等待移到PHP,而不是使用javascript计时器重新执行

  • 尝试使用更简单的jQuery.load()方法

在PHP方面

  sleep(2); // sleep for two seconds before returning output
效果类似,但简化了一点。直到返回输出,才会调用updateChat()函数



嗯,只是个主意。不确定它是否是正确的解决方案,但它可以帮助您隔离问题(去掉js timer变量)。

在第1行的/var/www/js/chat_data.php中的非对象上调用成员函数result()时出现的错误表示变量
$query
设置不正确。你说你在使用CodeIgniter,是吗,文件
ajax\u data.php
位于哪个文件夹?应用程序/控制器?

在第1行的/var/www/js/chat_data.php中,对非对象调用成员函数result()时出现的错误表示变量
$query
设置不正确。你说你在使用CodeIgniter,是吗,文件
ajax\u data.php
位于哪个文件夹?应用程序/控制器?

尝试运行此代码时会发生什么情况?你看过firebug的输出了吗?你应该看看解决方案,看看有没有更好的方法来执行jquery回调(更可靠地处理超时/故障)当你尝试运行这段代码时会发生什么?您看过firebug输出了吗?应该看看解决方案,看看有没有更好的方法来执行jquery回调(更可靠地处理超时/故障),不幸的是,如果我不包括它,它就不会加载,因此jquery一定没有正确地到达它。下面是我在jquery中放入“js/chat_data.php”时遇到的错误:致命错误:在第1行的/var/www/js/chat_data.php中的非对象上调用成员函数result()。是的,现在是让codeigniter正确推送信息的问题,谢谢。不幸的是,如果我不包括它,它将无法加载,因此jquery一定不能正确到达它。下面是我在jquery中放入“js/chat_data.php”时遇到的错误:致命错误:在第1行对/var/www/js/chat_data.php中的非对象调用成员函数result()。是的,现在是让codeigniter正确推送信息的问题,谢谢。谢谢,这个jquery代码实际上正在工作,这是一个让数据正确显示的问题。这很好-我认为这种方法可能会简化,至少最初是这样。谢谢,这个jquery代码实际上正在工作,这是一个让数据正确显示的问题。这很好-我认为这种方法可能会简化,至少最初是这样。我把它完全放在一个单独的区域中。它现在正确地引用了文件,但是codeigniter在生成它时遇到了问题(可能是因为控制器将数据发送到视图,然后视图从另一个.php文件(chat_data.php)中请求该数据)。我建议您将代码从chat_data.php移动到它自己的文件(在应用程序/控制器中)。由于codeigniter的设计方式,包含来自视图的文件的效果不太好。此外,视图文件没有获得我认为的$db对象。另外,请记住在$row->name/body上调用htmlspecialchars(),否则聊天者可能会开始说类似于stealSomeCookies()的话或者相互攻击……俄罗斯恶意软件实际上是有用的,我把它完全放在一个单独的区域。它现在正确地引用了文件,但是codeigniter在生成它时遇到了问题(可能是因为控制器将数据发送到视图,然后视图从另一个.php文件(chat_data.php)中请求该数据)。我建议您将代码从chat_data.php移动到它自己的文件(在应用程序/控制器中)。包括来自视图的文件,由于codeigniter的设计方式,效果不太好。此外,视图文件没有获得我认为的$db对象。另外,请记住调用htmlspecialchars()超过$row->name/body,否则聊天者可能会开始说类似于偷取SomeCookies()或互相攻击的话……俄罗斯恶意软件实际上很有用