基本上,我將如何使用jquery動畫自動更新mysql查詢結果?我希望它看起來像是一個新聞動畫,當它添加的結果是動畫和滑落的?這將是多麼難以實現,我會用什麼來做到這一點?我將如何動畫自動更新mysql查詢結果?
感謝,
卡梅倫
基本上,我將如何使用jquery動畫自動更新mysql查詢結果?我希望它看起來像是一個新聞動畫,當它添加的結果是動畫和滑落的?這將是多麼難以實現,我會用什麼來做到這一點?我將如何動畫自動更新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獲取數據庫中的舊消息。
然後,如果一切正常,加上:
ANIMATION
$("selector").fadeIn(slow);
如果你想要做的jQuery的動畫。 :)動畫本身是你必須擔心的最後一件事。 :)
廣:
load()
該頁面來自包含頁面的Javascript。這是一個非常簡短的概要。最初,我們來看看結果。
// results.php
$sql = "SELECT * FROM `tbl` LIMIT 10 ORDER BY date_created DESC";
if(!$query = mysql_query($sql))
trigger_error(mysql_error());
while($result = mysql_fetch_assoc($query))
print_r($result);
然後製作一個頁面來顯示它們。
// index.html
<script type="text/javascript">
function loadResults() {
$('#results').fadeTo('fast' , 0).load('results.php').fadeTo('fast' , 1);
}
$(document).ready(function() {
loadResults();
var interval = self.setInterval(loadResults(), 10000);
});
</script>
<div id="results"></div>
未經測試。
我會在這裏扔我的槳,雖然這是一個類似的解決方案,除了使用jQuery模板和JSON。我不用php自己工作,但創建JSON似乎並不困難與json_encode()