gpt4 book ai didi

php - 我将如何为自动更新的 mysql 查询结果制作动画?

转载 作者:行者123 更新时间:2023-11-29 02:06:13 24 4
gpt4 key购买 nike

基本上,我如何使用 jquery 制作自动更新的 mysql 查询结果动画?我希望它看起来像一个动态的新闻源,并在添加结果时向下滑动?这有多难实现,我会用什么来实现?

谢谢,

卡梅伦

最佳答案

首先您需要一些 JS、PHP 和 HTML 技能。

JavaScript:

function create_ajax()
{
try
{
ajaxRequest = new XMLHttpRequest();
}
catch (e)
{
try
{
ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
return false;
}
}
}

return ajaxRequest;
}

您需要在 HTML 文件中使用此函数来启动消息服务:

function StartUp()
{
/** Jquery **/
setTimeout(function() {$('#message').fadeOut('fast');}, 5000);
UserLogService();
}

此函数有助于连接到 PHP:

function MessageService()
{
setTimeout('MessageService()', 60000);

var ajaxRequest;
ajaxRequest=create_ajax();

ajaxRequest.onreadystatechange =
function()
{
if(ajaxRequest.readyState == 4)
{
message = ajaxRequest.responseText.split(';');

if (message[0])
{
headMessageDisplay(message[0], message[1]);
setTimeout('headMessageNoDisplay()', 30000);
}
}
}

ajaxRequest.open("GET", "xxx.php", true);
ajaxRequest.send(null);
}

在您的 PHP 中获取消息:

if ($msg)
{
$this->Show($msg);
exit();
}

PHP:这显示了来自 PHP 的消息:

private function Show($msg = null)
{

for ($i = 0; $i < count($msg); $i++)
{
$error = $this->html;

$error = str_replace('{MESSAGE}', $msg[$i], $error);
$error = str_replace('{TYPE}', error, $error);
$error = str_replace('{DISPLAY}', 'block', $error);

$this->message .= $error;
}

print $this->message;
}

这使得消息本身:

        $r = $_REQUEST["sql"]->Query("SELECT m.id, m.message, t.name as type FROM db_table_message  m JOIN db_table_messagetype t ON (t.id = m.type) WHERE m.processing = '0' AND m.user_id = '".$_REQUEST["user"]->Id."' 
AND m.date != '0000-00-00 00:00:00' AND m.date <= DATE_SUB(NOW(), INTERVAL -1 MINUTE) LIMIT 1");
$a = $_REQUEST["sql"]->GetRecord($r, 0);

if (!$a["id"])
{
$r = $_REQUEST["sql"]->Query("SELECT m.id, m.message, t.name as type FROM db_table_message m JOIN db_table_messagetype t ON (t.id = m.type) WHERE date = '0000-00-00 00:00:00' AND m.processing = '0' AND m.user_id = '".$_REQUEST["user"]->Id."' LIMIT 1");
$a = $_REQUEST["sql"]->GetRecord($r, 0);
}

if ($a["id"])
{
$_REQUEST["sql"]->Query("UPDATE db_table_message SET processing = '1' WHERE id = '$a[id]'");
}
else
{
$r = $_REQUEST["sql"]->Query("SELECT m.id, m.message, t.name as type FROM db_table_message m JOIN db_table_messagetype t ON (t.id = m.type) WHERE m.user_id = '0' LIMIT 1");
$a = $_REQUEST["sql"]->GetRecord($r, 0);
}

$this->Show($a["message"], $a["type"]);
}

private function Show($message = null, $type = null)
{
if ((!$message) || (!$type)) return false;

switch($type)
{
case "information":
$type = information;
break;

case "warning":
$type = warning;
break;

case "error":
$type = error;
break;
}

print "$message;$type";

使用 PHP 类从数据库中获取消息...要做到这一点需要做很多事情。我差点忘了在 php 加载页面时从数据库中获取旧消息。

然后,如果一切正常,添加:

动画

$("selector").fadeIn(slow);

如果你想用jQuery做动画。 :) 动画本身是您最不需要担心的事情。 :)

关于php - 我将如何为自动更新的 mysql 查询结果制作动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5513409/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com