2014-01-17 33 views
2

所以我會盡量給你儘可能多的細節,讓你明白我在想什麼。基於mysql字段更改div的顏色

我正在研究一個主要用php編寫的小型web應用程序。我在mysql中有一個表,其中一行有一個用戶名字段,密碼字段和一個「狀態」字段。

帶有用戶名和密碼字段和提交按鈕的Web部分1頁面。當用戶名和密碼正確時,它將打開狀態。這應該代表一個你必須保持的發電機。

然後我有一個cronjob每10分鐘運行一個腳本來關閉狀態。這是爲了進行一點小小的比賽。我們應該監視發電機現場,如果發電機關閉,我們必須輸入用戶名和密碼並重新打開。所有這些東西都起作用。

我的問題是,當發生器打開時,我想讓一個小的彩色方塊變綠,當發生器關閉時,變成紅色。我希望能夠做到這一點,而無需重新加載頁面。所以如果我盯着頁面和狀態改變關閉,它會變成紅色。

我有種看着AJAX(因爲我假設這是我需要使用)但沒有找到類似的東西的例子。如果有人可以,你會告訴我你將如何做一個簡短的語法示例?幫助表示讚賞...

回答

2

HTML

<div id="generator-state"></div> 

CSS

#generator-state { height: 100px; width: 100px;} 
#generator-state.on { background: green; } 
#generator-state.off { background: red; } 

jQuery的

做一個AJAX調用服務器。解析爲生成器狀態返回的數據對象(data.state),並使用該值在#generator-state元素上設置類。

db.php查詢您的MySQL數據庫。

setInterval()每10分鐘運行一次AJAX。

function fetchState() { 
    $.get('/path/to/db.php', function(data) { 
    $('#generator-state').removeClass('on off').addClass(data.state === 'on' ? 'on' : 'off'); 
    }); 
} 

setInterval(fetchState, 10 * 60 * 1000); 
+0

真棒謝謝你這麼多 – comfroels

0

好吧,我得到了所有的。我做了在不同的文件中的JavaScript,並鏈接到頁面。是否有一個標題或任何需要在JavaScript文件中去?我所有的文件都是你放的。還有什麼需要在db.php中?我會給你我所擁有的:

<?php 
require_once 'login.php'; 

$db_server=mysql_connect($db_hostname,$db_username,$db_password); 
if(!$db_server) die("Unable to connect to mysql: " . mysql_error()); 
mysql_select_db($db_database,$db_server) or die("Unable to connect to DB: " . mysql_error()); 

$query = "SELECT state FROM gen WHERE user='ccdc'"; 
$result = mysql_query($query); 
$data = mysql_fetch_row($result); 
?>